TypeScript之泛型
什么是泛型,有什么用?
泛型字面意思就是广泛的类型,怎么样才算广泛呢?当然是能变的最广泛嘛,
所谓泛型就是类型的变量写法,让你的变量的类型是动态可变的,应用场景如官方文档描述的例子:
一个函数,输入什么类型,就输出什么类型,如下:
function identity<T>(arg: T): T { return arg; }
泛型使用方式在<>中声明变量(<type>),在作用域内部使用
函数中:function identity<T>(arg: T): T { return arg; }
接口中:interface GenericIdentityFn<T> { (arg: T): T; }
类中:class GenericNumber<T> { zeroValue: T; add: (x: T, y: T) => T; }
泛型约束
interface Lengthwise { length: number; }
function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length);
// Now we know it has a .length property, so no more error return arg;
}