泛型
当需要一种方法返回值的类型和传入参数的类型相同时。可以使用类型变量(是一种特殊的变量。只用于表示类型而不是值)
function identity<T>(arg: T): T {
return arg;
}
使用:
let output = identity<string>("myString"); //明确指定参数类型
let output = identity("myString"); //利用类型推论
泛型类型
泛型函数的类型与非泛型函数的类型区别:一个类型参数在最前面,像函数声明一样
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: <T>(arg: T) => T = identity;
//泛型参数名可不同
let myIdentity: <U>(arg: U) => U = identity;
带有调用签名的对象字面量定义泛型函数
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: {<T>(arg: T): T} = identity;
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: {<T>(arg: T): T} = identity;
泛型接口:
interface GenericIdentityFn {
<T>(arg: T): T;
}
function identity<T>(arg: T): T {
return arg;
}
let myIdentity: GenericIdentityFn = identity;
版权声明:本文为qq_37609418原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。