有一个默认示例如何在 TypeScript 中使用泛型类型:
class Greeter<T> {
greeting: T;
constructor(message: T) {
this.greeting = message;
}
greet() {
return this.greeting;
}
}
let greeter = new Greeter<string>("Hello, world");
let button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
alert(greeter.greet());
}
document.body.appendChild(button);
使用它的主要原因是什么?为什么我不能只使用
:any
在此示例中键入 T
?
最佳答案
在 TypeScript(和任何其他编程语言)中使用泛型的主要原因是使类型(类、类型或接口(interface))能够充当参数。它有助于我们为不同类型的输入重用相同的代码,因为类型本身可以作为参数使用。
泛型的一些好处是:
function test <T>(input: T[]): T { ... }
允许您确保输入和输出使用相同的类型,尽管输入为数组。 input
而不是任何其他方法。 const list: Array<Item> = []
,遍历数组元素,您将可以访问所有 Item
成员。 Account
的基类。包含一些方法和属性。后来,其他几个类( Checking
、 Saving
和 MoneyMarket
)扩展了这个类。您可以拥有一个对任何扩展类执行某些操作的函数,例如 function getBalance <T extends Account>(account: T): number { ... }
. 关于typescript - 万一使用泛型 TypeScript 的主要原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544617/