아이템 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
[재희] 소스맵을 써서 디버깅을 자주 하시나요?
[동호] 안하지요
[재희] 해 보신분?
[동호, 진욱, 효리] 안 해봤습니다.
[동호] 해 보셨나요, 재희님?
[재희] 잘 모르겠어요. 네트워크 탭에서 원본 파일을 뜯어보는거랑 같은건지.. 저도 제대로 해보지는 않은 것 같아요.
[동호] 각자 한 번씩 해보죠
[진욱] tsconfig 에서 소스맵 설정을 안하면 안되는거죠?
[동호] 그렇게 책에 나와있긴 하네요. 소스맵은 개발자도구와 같이 쓰이고 디버거를 대체할 수 없다. 써봐라. 츄라이 츄라이