- 泛型函数
//泛型函数-调用时再指定类型
function fn1<T>(a:T[]):void {
a.forEach(function (value, index, array) {
console.log(value);
})
}
fn1<number>([1, 2, 3, 4, 5]);
fn1<string>(["a", "b", "c", "d"]);
- 泛型类
//泛型类
class Person<T> {
public name:T;
public list:T[] = [];
addList(a:T){
this.list.push(a);
}
}
const a = new Person<string>();
a.addList("qwe");
a.addList("asd");
console.log(a.list);
- 泛型接口
//泛型接口(通过接口Ifn判断fn2类型是否正确
interface Ifn<T> {
(a:T, b:T):T;
}
function fn2(a:number, b:number):number {
return a + b;
}
let b:Ifn<number> = fn2;