types-kit.keys.md

September 4, 2023 ยท View on GitHub

Home > types-kit > Keys

Keys type

Get keys of T.

Signature:

export type Keys<T> = T extends readonly unknown[]
  ? // unknown[] extends readonly unknown[], but readonly unknown[] not extends unknown[]
    TupleKeys<T> extends infer K
    ? K extends keyof T
      ? K
      : never
    : never
  : keyof T

References: TupleKeys

Example

 interface Props {
   a?: number
   b: number
   c: number
 }

 // Expect: 'a' | 'b' | 'c'
 type PropKeys = Keys<Props>