Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 706 Bytes

File metadata and controls

43 lines (31 loc) · 706 Bytes

typelab / utils / ObjectRequiredKeys

type ObjectRequiredKeys<T> = T extends T ? IsObjectLiteral<T> extends true ? keyof { [K in keyof T as IsRequiredProperty<T, K> extends true ? K : never]-?: true } : never : never;

Get the required keys from T type.

Type Parameters

Type Parameter Description

T

The object type to extract required keys from.

Returns

The keys of T that are required.

Example

type Obj = { a: number; b: string | undefined; c?: boolean };
type RequiredKeys = ObjectRequiredKeys<Obj>; // "a" | "b"