아이템 53

아이템 54

interface ABC {
	a: string;
	b: string;
	c: number;
}

function foo(abc: ABC) {
	for (const k in abc) { // const k: string
		const v = abc[k];
						//~~~~~~ 'ABC' 타입에 인덱스 시그니처가 없기 때문에
						//       엘리먼트는 암시적으로 'any'가 됩니다.
	}
}

const x = {
	a: 'a',
	b: 'b',
	c: 2,
	d: new Date(),
};
foo(x); // 정상

• ABC 타입에 할당 가능한 객체에는 다른 속성이 존재할 수 있기 때문에, 타입스크립트는 ABC 타입의 키를 string 타입으로 선택한다.

[동호] 왜 굳이 타입스크립트는 ABC 타입의 키를 string으로 선택하는지 이해가 잘 안된다.

[효리] 순회 가능한 키 타입이 항상 string이어서 그런 것 같다. 심볼이 키가 될 수 있지만, 심볼은 열거 가능하지 않다.

아이템 55

아이템 56

아이템 57

[재희] 소스맵을 써서 디버깅을 자주 하시나요?

[동호] 안하지요

[재희] 해 보신분?

[동호, 진욱, 효리] 안 해봤습니다.