즉, 람다에서 `this`사용은 유의 해야한다. 저번에 this 바인딩 공부할 때
람다 같은 경우 불완전 함수라고 우리끼리 명시한 바 있다.
this의 바인딩 문제였는데 여기서 한번더 거론 중.
즉 여기서 알 수 있는 것은, `람다에서 this는 한단계 위를 지칭`함을 알 수 있다
**가급적 화살표 함수 사용 권장 -> 깔끔, 유연, function 키워드의 대체 가능**
### 타이핑
- 변수에 타입 할당
```typescript
var numbers: Array<number> = [];
numbers.push(7);
numbers.push(8);
var unknown = numbers.pop();
# nodejs, npm 설치된 경우
$npm install -g traceur
# 컴파일 할 수 있는 traceur 바이너리 생성
$traceur --script input.js --out output.js
function abc (var1, var2, var3){
console.log(var1);
console.log(var2);
console.log(var3);
}
var name = "aaa";
var s = `this is aa ${name}`;
console.log(s);
function timeout(ms) {
return new Promise((resolve => {
setTimeout(resolve, ms);
}));
}
async function asyncValue(value) {
await timeout(1500);
return value;
}
(async function () {
console.log("Start");
var valuePromise = asyncValue(42).catch(console.error.bind(console));
console.log("Task is running in the background");
console.log("Awaiting the promise");
var value = await valuePromise;
console.log("Promise resolved");
console.log(value);
})();
/*
Start
Task is running in the background
Awaiting the promise -> 딜레이 후 1500ms
Promise resolved -> 반환 후 실행
42
*/