keyof
用于获取对象的所有键值作为字符串字面量类型。
interface Person {
name: string;
age: number;
}
type K1 = keyof Person; // "name" | "age"
typeof
用于获取变量或对象的类型。
let x: string = "Hello";
type T1 = typeof x; // string
let y: any;
type T2 = typeof y; // any
- 索引访问类型用于获取对象属性的类型。
interface Person {
name: string;
age: number;
}
type P1 = Person["name"]; // string
type P2 = Person["age"]; // number
- 条件类型允许你在一个类型上做基于条件的操作。
type IfEquals<T, U, Y, N> = (<A>() => A extends B ? 1 : 2) extends
(<A>() => A extends B ? 1 : 2) ? Y : N;
type T1 = IfEquals<string, string, number, boolean>; // number
type T2 = IfEquals<string, number, number, boolean>; // boolean
评论已关闭