Keyof
The keyof operator takes an object type and produces a union of its keys
Like typeof, keyof is used to create new types
For any type T, keyof T is the union of public property names of T
interface Person {
age: number;
name: string;
}
type PersonKeys = keyof Person; // "age" | "name"
The type PersonKeys here is the same as:
type PersonKeys = "age" | "name"
If the type uses a string or number as the index, then keyof will return those types instead:
interface Arrayish = {
[n: number]: unknown
}
type A = keyof Arrayish
// A = number
Backlinks