TypeScript高级泛型类型深入解析
1. 使用 keyof 约束泛型类型参数
keyof 关键字可用于约束泛型类型参数,使其只能匹配另一个类型的属性。以下是一个示例:
import { City, Person, Product, Employee } from "./dataTypes";
function getValue<T, K extends keyof T>(item: T, keyname: K) {
console.log(`Value: ${item[keyname]}`);
}
let p = new Product("Running Shoes", 100);
getValue(p, "name");
getValue(p, "price");
let e = new Employee("Bob Smith", "Sales");
getValue(e, "name");
getValue(e, "role");
在这个例子中, getValue 函数的类型参数 K 受 keyof T 约束,这意味着 K 只能是 T 定义的属性名之一。当 getValue 函数与 Product 对象一起使用时, keyname 参数只能是 name <
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



