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​

ParameterConstraintDescription
Ksymbol | 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>