Typescript: 이 타이핑은 μ‘΄μ€‘λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

에 λ§Œλ“  2016λ…„ 12μ›” 09일  Β·  1논평  Β·  좜처: microsoft/TypeScript

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'μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

Question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ·€ν•˜μ˜ μ˜ˆμ œμ—μ„œ ν™”μ‚΄ν‘œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œμ΄ ν•¨μˆ˜ λ‚΄μ—μ„œ μ‚¬μš©ν•  μˆ˜μžˆλŠ” 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 λ₯Ό μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같이 μž…λ ₯λ©λ‹ˆλ‹€.

interface UIElement {
    addClickListener(onclick: (this: UIElement, e: Event) => void): void;
    prop: number;
}

let uiElement: UIElement;
uiElement.addClickListener(function() {
    var k = this.prop;
});

κ·Έ 행동은 λ‚˜μ—κ²Œ μ’‹μ•„ 보인닀. ν™”μ‚΄ν‘œ κΈ°λŠ₯ 였용과 κ΄€λ ¨λœ 였λ₯˜λ₯Ό ν¬μ°©ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰