TypeScript高级泛型类型与JavaScript代码处理
高级泛型类型
在TypeScript中,类型推断是一个强大的特性,通过 infer 关键字可以在条件类型解析时让编译器推断类型。例如以下代码:
let products = [new Product("Kayak", 275), new Product("Lifejacket", 48.95)];
console.log(`Array Value: ${getValue(products, "price")}`);
console.log(`Single Total: ${getValue(products[0], "price")}`);
当 T 是数组时,类型 U 会被推断出来。 targetKeys<Product> 和 targetKeys<Product[]> 都会产生 "name" | "price" 的联合类型,这可以用来约束 getValue<T, P> 函数的属性,为单个对象和数组提供一致的类型。上述代码的输出为:
Array Value: 275
Single Total: 275
函数类型推断
编译器还能在接受函数的泛型类型中推断类型,示例代码如下:
超级会员免费看
订阅专栏 解锁全文

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



