types-kit.keys.md
September 4, 2023 ยท View on GitHub
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>