泛型

1.是什么?

function identity<T>(arg: T): T {
    return arg;
}
我们把identity函数叫做泛型,因为它可以适用于多个类型。 不同于使用 any,它不会丢失信息。

我们定义了泛型函数后,可以用两种方法使用。 第一种是,传入所有的参数,包含类型参数:


let output = identity<string>("myString");  // type of output will be 'string'

这里我们明确的指定了Tstring类型,并做为一个参数传给函数,使用了<>括起来。


第二种方法更普遍。利用了类型推论 -- 即编译器会根据传入的参数自动地帮助我们确定T的类型:


let output = identity("myString");  // type of output will be 'string'

 

2.为什么?

当我们需要一种方法使返回值的类型与传入参数的类型是相同的,我们使用了 类型变量如 T,它是一种特殊的变量,只用于表示类型而不是值。

posted @ 2021-12-23 23:49  梦想行动家  阅读(46)  评论(0)    收藏  举报