泛型
1.是什么?
function identity<T>(arg: T): T { return arg; }
我们把identity函数叫做泛型,因为它可以适用于多个类型。 不同于使用 any,它不会丢失信息。
我们定义了泛型函数后,可以用两种方法使用。 第一种是,传入所有的参数,包含类型参数:
let output = identity<string>("myString"); // type of output will be 'string'
这里我们明确的指定了T是string类型,并做为一个参数传给函数,使用了<>括起来。
第二种方法更普遍。利用了类型推论 -- 即编译器会根据传入的参数自动地帮助我们确定T的类型:
let output = identity("myString"); // type of output will be 'string'
2.为什么?
当我们需要一种方法使返回值的类型与传入参数的类型是相同的,我们使用了 类型变量如 T,它是一种特殊的变量,只用于表示类型而不是值。

浙公网安备 33010602011771号