TypeScript Version: 2.0.3
Kode
interface UIElement {
addClickListener(onclick: (this: UIElement, e: Event) => void): void;
prop: number;
}
let uiElement: UIElement;
uiElement.addClickListener(() => {
var k = this.prop;
});
Perilaku yang diharapkan:
Tidak ada kesalahan
Perilaku sebenarnya:
tsc.exe --noImplicitBlah.ts ini
blah.ts (8,10): error TS2683: 'this' secara implisit memiliki tipe 'any' karena tidak memiliki penjelasan tipe.
Dalam contoh Anda, Anda menggunakan fungsi panah - jadi this
tersedia di dalam fungsi ini sama dengan this
luar - yang tidak memiliki informasi jenis (apa saja)
Gunakan function
dan Anda mengetik ini:
interface UIElement {
addClickListener(onclick: (this: UIElement, e: Event) => void): void;
prop: number;
}
let uiElement: UIElement;
uiElement.addClickListener(function() {
var k = this.prop;
});
Tingkah laku itu terlihat bagus bagiku. Itu menangkap kesalahan terkait dengan penyalahgunaan fungsi panah.
Komentar yang paling membantu
Dalam contoh Anda, Anda menggunakan fungsi panah - jadi
this
tersedia di dalam fungsi ini sama denganthis
luar - yang tidak memiliki informasi jenis (apa saja)Gunakan
function
dan Anda mengetik ini:Tingkah laku itu terlihat bagus bagiku. Itu menangkap kesalahan terkait dengan penyalahgunaan fungsi panah.