TypeScript中仅传入类型参数的泛型函数特性咨询
泛型函数的类型参数实例化(Generic Function Instantiation)
你遇到的这个特性叫做泛型函数的类型参数实例化,在TypeScript中,泛型函数本身可以被看作是一个“函数工厂”——当你通过<类型参数>的语法指定泛型类型时,并不会立即执行函数,而是会生成一个绑定了该类型参数的具体函数版本。
以你的代码为例:
function getRandomElement<T>(items: T[]): T { /* ... */ } // 这里并未调用函数,而是将泛型T固定为number,得到一个具体函数 let result = getRandomElement<number>;
此时result的类型被推导为(items: number[]) => number,本质是TypeScript把泛型函数getRandomElement<T>特化为了仅处理number[]输入的函数,你后续可以直接调用result([1,2,3])来获取随机数字。
相关的关键词可以参考:
- Generic Function Instantiation(泛型函数实例化)
- Type Argument Application(类型参数应用)
- 更宽泛的概念是Higher-Order Functions(高阶函数),因为泛型函数在这里相当于返回了另一个具体函数。
内容的提问来源于stack exchange,提问作者LeoPkm2-1
相关产品推荐
相关产品推荐

