Skip to main content

RestrictiveReadonlyRecord TypeAlias

Alternative to the built in Record type which does not permit unexpected members, and is readonly.

This API is deprecated and will be removed in a future release.

Use a more robust / specific type instead. This type never worked as intended.

Signature

export type RestrictiveReadonlyRecord<K extends symbol | string, T> = {
readonly [P in symbol | string]: P extends K ? T : never;
};

Type Parameters

Parameter Constraint Description
K symbol | string
T

Remarks

This does not work correctly when K is more specific than string or symbol. For example {a: 5} is not assignable to RestrictiveReadonlyRecord<"a",: number>