ts中的泛型


/**
* 泛型:軟件工程中,我們不僅要創造定義良好的API,同時也要考慮可重用行,組件不僅能
* 夠支持當前的數據類型,同時也能夠支持未來數據類型。
* 通俗理解:泛型就是解決類、接口、方法的復用性以及對不特定類型的數據的支持
*
*/
function getDate<T>(value:T):T {
  return value;
}
getDate<number>(123);
getDate<string>('123');
// 類的泛型
class minclass<T> {
  list:T[] = [];
  add(value:T):void {
    this.list.push(value);
  }
  min():T {
    return this.list[0];
  }
}
var minMy = new minclass<number>();
//函數類泛型接口
interface ConFn {
  <T>(value1:T,value2:T):T
}
var myFn:ConFn = function<T>(value:T):T {
  return value;
}
// 類作為參數來約束傳入數據的合法性
class Artic {
  title: string | undefined;
  desc: string|undefined;
  status:number | undefined;
  constructor(params:{
    title: string | undefined,
    desc: string|undefined,
    status?:number | undefined,
  }){

  }
}
class MySQLdb<T>{
  add(info:T):boolean{
    return true;
  }
}
var a = new Artic({
  desc: '123',
  status: 123,
  title: '123'
});
var b = new MySQLdb<Artic>();
b.add(a);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM