← Back to NOTES 🌰 ← Back to Effective TypeScript
← 아이템 53 - 타입스크립트 기능보다는 ECMAScript 기능을 사용하기
객체를 순회할 때 for-in 루프의 키 타입은 구체적인 키 타입이 아닌 string으로 추론된다. 이는 TypeScript가 구조적 타이핑을 사용하여 할당 가능한 모든 객체를 허용하기 때문이다. 정확한 타입이 필요하면 let k: keyof T를 사용하고, 일반적인 순회에는 Object.entries를 사용하는 것이 좋다. 프로토타입 오염 가능성도 항상 염두에 두어야 한다.
for-in 루프의 키 타입 문제:
for-in 루프에서 키 k는 string 타입으로 추론됨k는 더 넓은 string 타입구조적 타이핑의 영향:
ABC 타입을 받는 함수에 a, b, c, d 속성을 가진 객체 전달 가능string 타입으로 추론keyof를 사용한 해결:
let k: keyof T로 선언하면 정확한 키 타입 얻을 수 있음Object.entries 사용: