Skip to main content
Version: v2

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>