Array
クラスに新しいメソッド(last
)を追加しようとしています。グローバルメソッドに新しいメソッドを追加して配列クラスを拡張する
これは私のtest.ts
ファイルで、私は(宣言他の機能amoung)やっている:完全に今、私はエラーを取得Array
ための他の定義を消去するようだしかし、これは動作しません
declare global {
interface Array<T> {
last(): T;
}
}
if (!Array.prototype.last) {
Array.prototype.last = function <T>(): T {
return this[this.length - 1];
}
}
以下のように:私は任意の配列のlength
プロパティにアクセスしようとした場合
TypeError: Cannot read property 'length' of undefined
これが起こります。
これを正しく達成するにはどうすればよいですか?宣言は単独でファイルに入れなければなりませんか?
あなたはモジュールシステムを使用していますか?つまり、 'import' /' export'を使用していますか? –
@NitzanTomerいいえ私は同じ宣言を私が使っているのと同じファイルに入れているだけです。IntelliJはエラーを表示しませんが、一度コンパイルするとエラーが発生します。 – smac89
@NitzanTomer、実際にはいくつかのインポートがファイル。これは何か変わるでしょうか? – smac89