typescript Array添加擴展方法


declare interface Array<T> {
    select<T, TR>(this: T[], func: (item: T) => TR): TR[];
}

Array.prototype["select"] = function <T, TR>(this: T[], func: (item: T) => TR): TR[] {

    var vs = new Array<TR>();


    this.forEach((item) => vs.push(func(item)));


    return vs;

};

個人理解,可能有錯誤

我主要用在單文件,沒有聲明模塊的項目中,其他的可能有區別

接口的declare關鍵字的意思是擴展原有的(或者說全局作用域中的?)接口,否則會覆蓋原有的接口聲明,該聲明要在文件開頭編寫

然后就是在原型中添加方法,我測試是typescript沒有相應的檢查,告訴你添加的方法與接口中聲明的不匹配,或許能在配置文件中開啟,我不太清楚


免責聲明!

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



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