TS | 特殊操作符
keyof
TypeScript中的keyof操作符,是将一个类型映射为它所有成员名称的联合类型。
keyof 是将一个类型映射为他所有成员的联合声明
interface Person {
name: string;
age: number;
gender: string;
}
type P = keyof Person; // "name" | "age" | "gender"
声明一个类 通过keyof 来实现输入类型限制
class Student {
constructor(private info: Person) {}
getInfo<T extends keyof Person>(key: T): Person[T] {
return this.info[key];
}
}
getInfo 方法通过泛型进行输入输出的约束
解释一下这里的意思
<T extends keyof Person>
keyof 把 Person 映射成了联合声明 即"name" | "age" | "gender"
extens 标识 T 是包含在Person 的子类。就是 T 只能是 "name" | "age" | "gender"