函数采用延迟绑定泛型类型的官方称谓是什么?
TypeScript中延迟绑定泛型的官方称谓
你所说的“仅在调用时确定泛型类型”的函数,在TypeScript官方文档中被称为泛型函数(Generic Functions)。与之相对的“定义时确定泛型约束”的场景,属于**泛型类型别名(Generic Type Aliases)**定义的函数类型。
核心区别
- 泛型函数(对应示例中的
LateOp):泛型参数直接声明在函数签名上,只有函数被调用时,TypeScript才会根据传入参数推断或显式指定泛型类型。每次调用都可使用不同泛型类型,实现“延迟绑定”。 - 泛型类型别名定义的函数(对应示例中的
Op<EarlyT>):泛型参数属于外层类型别名,引用该类型别名时必须确定泛型参数(如Op<number>),得到的是固定类型的函数,调用时无法变更泛型约束。
代码示例对比
// 泛型类型别名:定义阶段确定泛型参数,得到固定类型函数 type Op<EarlyT> = (item: EarlyT) => void; const numberOp: Op<number> = (item) => console.log(item.toFixed(2)); // numberOp("123") 会报错,已绑定为number类型 // 泛型函数:调用阶段确定泛型类型,支持延迟绑定 type LateOp = <LateT>(late: LateT) => void; const genericOp: LateOp = (item) => console.log(item); genericOp("string"); // 自动推断为string类型 genericOp(123); // 自动推断为number类型
在API描述中,可直接用“泛型函数”指代这种延迟绑定的函数类型,另一种则称为“泛型类型别名定义的固定函数类型”,完全匹配TypeScript官方术语体系。
内容的提问来源于stack exchange,提问作者cefn
相关产品推荐
相关产品推荐

