- 在定义函数或是类时,如果遇到类型不明确就可以使用泛型,而不是 用any,any会自动关闭类型检测。
泛型使用方法
/**
* 在定义函数或是类时,如果遇到类型不明确就可以使用泛型
*/
//定义泛型K
function fn<K>(a:K):K{
return a;
}
//不指定泛型,可以自动对类型解析
console.log(fn(10));
let result=fn<string>("dfsf");//指定泛型
//泛型可以指定多个
function fn2<T,K>(a:T,b:K):T{
console.log(b);
return a;
}
fn2<number,string>(123,'123');
//T extends Inter 表示泛型T必须是Inter实现类
interface Inter{
length:number;
}
function fn3<T extends Inter>(a:T){
return a.length;
}
class MyClass<T>{
name:T;
constructor(name:T){
this.name=name;
}
}