- 此问题在此处已有答案**:
Generic function type alias(1个答案)
4天前关闭。
当函数具有后期绑定泛型类型时调用什么(仅在调用函数时确定,而不是在定义函数时确定)。
它在下面的代码示例中显示为LateT
,并与EarlyT
早期绑定情况形成对比,在早期绑定情况下,函数引用本身的类型已经具有类型化约束(并且在计算函数调用时它不是后期绑定的)。
我试图找到这种类型的函数定义的文档,并将其描述为API的一部分,我很难引用Typescript文档的正确部分,而没有正确的区分术语。
type Op<EarlyT> = (item:EarlyT) => void
type LateOp = <LateT>(late:LateT) => void;
1条答案
按热度按时间ws51t4hk1#
所谓的"后期绑定泛型"在TypeScript中称为泛型 * 函数 * 或 * 调用签名 *,而所谓的"早期绑定泛型"在TypeScript中称为泛型 * 类型 *。
相关文档可以在TypeScript手册中泛型类型一节中找到,其中
LateOp
这样的类型"描述泛型函数",而Op
这样的类型是"作为泛型类型一部分的非泛型函数签名"。所以在
GenFunc
* 类型 * 是非泛型的(它没有泛型类型参数),但是它引用泛型 * 调用签名 *(它具有泛型类型参数),而在:GenType
* 类型 * 是泛型的(它具有泛型类型参数),但它引用非泛型 * 调用签名 *(它本身没有泛型类型参数,尽管来自泛型类型的类型参数仍在范围内)。有关泛型函数和泛型类型之间关系的更多讨论,请参见TypeScript how to create a generic type alias for a generic function?。