"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๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ฌธ์ ๋ ๋๋ฒ๊ฑฐ๊ฐ typescript์ ๋ํด ์์ง ๋ชปํ๊ณ ์๋ฐ ์คํฌ๋ฆฝํธ์ ์์ค ๋งต๋ง ์๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์์ค ๋งต ํ์ผ์ ์์ค(.ts)์์ ๋์(.js)์ผ๋ก์ ๋ฌธ์ ๋ํ ๋งคํ์ ๋์ดํ ๋ฟ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ๋ณ์(์: _this)๋ ์ถ์ ํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ๋ฌธ์ ๋ฅผ ์๊ณ ์์ผ๋ฉฐ ์ค๋ซ๋์ ์ง์๋์ด ์จ ๋ฌธ์ ์ ๋๋ค. let, const, destructuring ๋ฐ ๊ณ์ฐ๋ ์์ฑ ๋ณ๊ฒฝ์ผ๋ก ์ด๋ฌํ ์ฌ์์ฑ์ ๋ ๋ง์ด ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ ๋ ์๊ธํฉ๋๋ค.
2859๊ฐ ์์ ๋๋ฉด IE ๊ฐ๋ฐ์ ๋๊ตฌ์์ "์ ์ ์๋"ํด์ผ ํฉ๋๋ค. ์ฆ, ๋ฒ์ญ์ ์จ๊น๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ Visual Studio์์๋ ๋ฐฐ์ ์ด ์๋ฃ๋์ง ์์์ต๋๋ค.
์ฌ์ ํ es5 ๋ฐ ํ์ดํ ๊ธฐ๋ฅ์ด ์๋ vs ์ฝ๋์ ๋ฌธ์ ์ ๋๋ค. ๋ ๋์ ์ฐ์ ์์๋ก ํด๊ฒฐํด์ผ ํ๋ ๊ฒ์ ์ ๋ง ์ฑ๊ฐ์ ์ผ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ์ ํ es5 ๋ฐ ํ์ดํ ๊ธฐ๋ฅ์ด ์๋ vs ์ฝ๋์ ๋ฌธ์ ์ ๋๋ค. ๋ ๋์ ์ฐ์ ์์๋ก ํด๊ฒฐํด์ผ ํ๋ ๊ฒ์ ์ ๋ง ์ฑ๊ฐ์ ์ผ์ ๋๋ค.