Skip to main content

TypeScript 的泛型

使返回值的类型与传入参数的类型是相同的:让类型推论自动推算出来

function identity<T>(arg: T): T {
return arg
}

传入类型变量代表的是任意类型,所以使用这个函数的人可能传入的是个数字,而数字是没有 .length 属性的。

function identity<T>(arg: T): T {
console.log(arg.length) // Error: T doesn't have .length
return arg
}

解决方法:

function identity<T>(arg: T[]): T[] {
console.log(arg.length) //正确
return arg
}

参考文章