Typescript: λžŒλ‹€λ₯Ό μ‚¬μš©ν•  λ•Œ VS2013μ—μ„œ "this" 디버깅 문제

에 λ§Œλ“  2015λ…„ 04μ›” 04일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: microsoft/TypeScript

"this"의 ν•˜λ“œ μ½”λ”©λœ 캑처λ₯Ό μ‚¬μš©ν•˜μ—¬ 일뢀 TypeScript μ½”λ“œλ₯Ό λ³€ν™˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

var _this = this;
var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then(function(data){
    _this.querySucceeded(data);
});

λžŒλ‹€ μ‚¬μš©ν•˜κΈ°:

var querySucceeded = function(data){
    this.doSomething(data);
}
var test = this.executeQuery().then((data) => {
    this.querySucceeded(data);
});

TypeScriptλŠ” JSλ₯Ό 첫 번째 μ½”λ“œ 블둝과 μœ μ‚¬ν•œ κ²ƒμœΌλ‘œ μ»΄νŒŒμΌν•˜κ³  λΈŒλΌμš°μ €μ—μ„œ λͺ¨λ“  것이 잘 μ‹€ν–‰λ©λ‹ˆλ‹€. λ¬Έμ œλŠ” Visual Studioμ—μ„œ 디버깅할 λ•Œμž…λ‹ˆλ‹€. λžŒλ‹€ λ‹€μŒμ— "this"λ₯Ό κ²€μ‚¬ν•˜λ©΄ 클래슀 μ»¨ν…μŠ€νŠΈ λŒ€μ‹  μ°½ 속성이 ν‘œμ‹œλ©λ‹ˆλ‹€.

λΈŒλΌμš°μ €μ—μ„œ 직접 λ””λ²„κ·Έν•˜λ©΄ 둜컬 μ»¨ν…μŠ€νŠΈκ°€ μ œλŒ€λ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€. μ•Œλ €μ§„ λ¬Έμ œμž…λ‹ˆκΉŒ? JS 파일과 TS 파일 κ°„μ˜ 맀핑에 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

VS2013 μ—…λ°μ΄νŠΈ 4와 TypeScript 1.4λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Needs Proposal Suggestion Visual Studio

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

μ—¬μ „νžˆ es5 및 ν™”μ‚΄ν‘œ κΈ°λŠ₯이 μžˆλŠ” vs μ½”λ“œμ˜ λ¬Έμ œμž…λ‹ˆλ‹€. 더 높은 μš°μ„  μˆœμœ„λ‘œ ν•΄κ²°ν•΄μ•Ό ν•˜λŠ” 것은 정말 μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

λ¬Έμ œλŠ” 디버거가 typescript에 λŒ€ν•΄ μ•Œμ§€ λͺ»ν•˜κ³  μžλ°” μŠ€ν¬λ¦½νŠΈμ™€ μ†ŒμŠ€ 맡만 μ•Œκ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ†ŒμŠ€ 맡 νŒŒμΌμ€ μ†ŒμŠ€(.ts)μ—μ„œ λŒ€μƒ(.js)으둜의 문에 λŒ€ν•œ 맀핑을 λ‚˜μ—΄ν•  뿐 이름이 λ³€κ²½λœ λ³€μˆ˜(예: _this)λŠ” μΆ”μ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” 이 문제λ₯Ό μ•Œκ³  있으며 μ˜€λž«λ™μ•ˆ μ§€μ†λ˜μ–΄ 온 λ¬Έμ œμž…λ‹ˆλ‹€. let, const, destructuring 및 κ³„μ‚°λœ 속성 λ³€κ²½μœΌλ‘œ μ΄λŸ¬ν•œ μž¬μž‘μ„±μ„ 더 많이 ν•˜κ³  있기 λ•Œλ¬Έμ— λ¬Έμ œλŠ” 더 μ‹œκΈ‰ν•©λ‹ˆλ‹€.

2859κ°€ μˆ˜μ •λ˜λ©΄ IE 개발자 λ„κ΅¬μ—μ„œ "정상 μž‘λ™"ν•΄μ•Ό ν•©λ‹ˆλ‹€. 즉, λ²ˆμ—­μ„ μˆ¨κΉλ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ ν˜„μž¬ Visual Studioμ—μ„œλŠ” 배선이 μ™„λ£Œλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ—¬μ „νžˆ es5 및 ν™”μ‚΄ν‘œ κΈ°λŠ₯이 μžˆλŠ” vs μ½”λ“œμ˜ λ¬Έμ œμž…λ‹ˆλ‹€. 더 높은 μš°μ„  μˆœμœ„λ‘œ ν•΄κ²°ν•΄μ•Ό ν•˜λŠ” 것은 정말 μ„±κ°€μ‹  μΌμž…λ‹ˆλ‹€.

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