我試圖在Array
類中添加一個新方法(last
)。通過向全局接口添加新方法來擴展Array類
這是我在做什麼(amoung等功能聲明),我test.ts
文件:
declare global {
interface Array<T> {
last(): T;
}
}
if (!Array.prototype.last) {
Array.prototype.last = function <T>(): T {
return this[this.length - 1];
}
}
但是,因爲它似乎完全擦除Array
其他定義所以現在我得到的錯誤,這並不工作像:
TypeError: Cannot read property 'length' of undefined
發生這種情況,如果我嘗試訪問任何陣列的length
財產。
我該如何正確實現?聲明是否必須自己進入文件?
您使用的模塊系統?也就是說,你使用'import' /'export'嗎? –
@NitzanTomer不,我只是在我使用它的同一個文件中有這個聲明。IntelliJ不顯示任何錯誤,但是一旦我編譯它,我得到錯誤 – smac89
@NitzanTomer,其實我有一些進口的頂部文件。這會改變什麼嗎? – smac89