用法
透過參數客製化class,是TypeScript獨有的機能
傳統的寫法
class NumberStore{
data: number;
}
class StringStore{
data: string;
}
//型チェックができません
class AnyStore{
data: any
}
使用泛型的寫法
//Tという文字は自由に名付けられる
class Store<T>{
data: T;
getStore(): T{
return this.data;
}
}
let stringStore=new Store();
stringStore.data = 'X';
console.log(stringStore.getStore()); //'X'
let numberStore = new Store();
numberStore.data = 100000;
console.log(numberStore.getStore()); //100000
函數的泛型
function hello<T>(keyword: T) {
console.log(`Log: ${keyword}`);
}
hello<string>('Hello Ian!'); //'Log: Hello Ian!'
hello<number>(1000000000);//'Log: Hello 1000000000'
指定2個以上的泛型參數
class Component<T, U>{
name: T;
created: U;
}
let component = new Component<string, number>();
component.name = 'app';
component.created = Date.now();