<T> 基本應用
function getAnything<T>(data: T): T{ // 傳入一個任意型別的參數並返回 便返回這個型別的參數 return data; } console.log(getAnything(100)); // 印出 100 console.log(getAnything('happy')); // 印出 happy
在函數中加入限制條件
function getAnything<T>(data: T): string{ if(typeof data === 'string'){ return 'Woo, it`s string'; } if(typeof data === 'number'){ return 'Woo, it`s number'; } } console.log(getAnything(100)); // 印出 Woo, it`s number console.log(getAnything('happy')); // 印出 Woo, it`s string
進階版 - 泛型+限制指定型別
type post = { title: string; msg: string; index: number; } function getAnything<T>(data: T extend post): string{ // 目的為在導入型別時即時能判定 是否符合指定型別, 不然就和使用any 沒有區別了 if(typeof data === 'string'){ return 'Woo, it`s string'; } if(typeof data === 'number'){ return 'Woo, it`s number'; } } console.log(getAnything(100)); // 印出 Woo, it`s number console.log(getAnything('happy')); // 印出 Woo, it`s string