TypeScript λ²μ : 2.0.3
μνΈ
interface UIElement {
addClickListener(onclick: (this: UIElement, e: Event) => void): void;
prop: number;
}
let uiElement: UIElement;
uiElement.addClickListener(() => {
var k = this.prop;
});
μμλλ λμ :
μ€λ₯ μμ
μ€μ νλ :
tsc.exe --noImplicitThis blah.ts
blah.ts (8,10) : μ€λ₯ TS2683 : 'this'μλ μ ν μ£Όμμ΄ μκΈ° λλ¬Έμ μμ μ μΌλ‘ 'any'μ νμ΄ μμ΅λλ€.
κ·νμ μμ μμ νμ΄ν ν¨μλ₯Ό μ¬μ©νκ³ μμ΅λλ€. λ°λΌμμ΄ ν¨μ λ΄μμ μ¬μ©ν μμλ this
λ μ ν μ 보κ°μλ this
μΈλΆμ λμΌν©λλ€.
function
λ₯Ό μ¬μ©νλ©΄ λ€μκ³Ό κ°μ΄ μ
λ ₯λ©λλ€.
interface UIElement {
addClickListener(onclick: (this: UIElement, e: Event) => void): void;
prop: number;
}
let uiElement: UIElement;
uiElement.addClickListener(function() {
var k = this.prop;
});
κ·Έ νλμ λμκ² μ’μ 보μΈλ€. νμ΄ν κΈ°λ₯ μ€μ©κ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν¬μ°©ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
κ·νμ μμ μμ νμ΄ν ν¨μλ₯Ό μ¬μ©νκ³ μμ΅λλ€. λ°λΌμμ΄ ν¨μ λ΄μμ μ¬μ©ν μμλ
this
λ μ ν μ 보κ°μλthis
μΈλΆμ λμΌν©λλ€.function
λ₯Ό μ¬μ©νλ©΄ λ€μκ³Ό κ°μ΄ μ λ ₯λ©λλ€.κ·Έ νλμ λμκ² μ’μ 보μΈλ€. νμ΄ν κΈ°λ₯ μ€μ©κ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό ν¬μ°©ν©λλ€.