【发布时间】:2020-06-29 18:53:54
【问题描述】:
我是 typescript 的新手,我正在尝试了解泛型是如何工作的。我想知道为什么下面的代码不飞:
function identity<T>(arg: T): T {
let num: number = 2;
return num;
}
let output = identity<number>(1);
我收到错误:类型“数字”不可分配给类型“T”。如果函数的输入是一个数字,这是否意味着 number 的返回类型也应该起作用,因为我们说 T 是 number 类型?
【问题讨论】:
-
T不会必然是一个数字。例如,您可能有identity<string>("hello")在这种情况下return num是错误的。您没有确保T与number有任何关系,因此TS 将无法编译它,因为它不能保证兼容性。
标签: typescript