[TypeScript][文档]泛型

——泛型是一种类型变量,只用于表示类型而不是值。用于让用户传入类型

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

可以用两种方式使用:

let output = identity<string>("myString");  // type of output will be 'string'
//这里我们明确的指定了T是string类型,并做为一个参数传给函数,使用了<>括起来而不是()。

//第二种方法更普遍。利用了类型推论 -- 即编译器会根据传入的参数自动地帮助我们确定T的类型:
let output = identity("myString");  // type of output will be 'string'

一、泛型变量

在函数体中使用泛型变量要注意到:你必须把这些参数当做是任意或所有类型。——也就是说,只能使用所有类型都可用的操作

function loggingIdentity<T>(arg: T): T { // 使用这个函数的人可能传入的是个数字,而数字是没有 .length属性的
    console.log(arg.length);  // Error: T doesn't have .length
    return arg;
}

假设传入的时数组,就可以这样操作:

function loggingIdentity<T>(arg: Array<T>): Array<T> {
    console.log(arg.length);  // Array has a .length, so no more error
    return arg;
}

猜你喜欢

转载自www.cnblogs.com/shenjie0507/p/10119990.html