← Back to NOTES 🌰 ← Back to Effective TypeScript
← 아이템 25 - 비동기 코드에는 콜백 대신 async 함수 사용하기
타입스크립트는 타입을 추론할 때 값뿐만 아니라 값이 존재하는 문맥까지 고려한다. 문맥과 값을 분리하면 문맥 손실이 발생하여 타입 오류가 생길 수 있다. 변수를 뽑아서 별도로 선언할 때는 타입 선언을 추가하거나, 변수가 정말로 상수라면 상수 단언(as const)을 사용해야 한다.
타입스크립트는 타입을 추론할 때 단순히 값만 고려하지 않고, 값이 존재하는 문맥까지 확인한다. 타입스크립트는 할당 시점에 타입을 추론하며, 값이 처음 등장할 때 타입이 결정된다.
값과 문맥을 분리하면 타입 추론에 문제가 발생할 수 있다. 이를 '문맥 손실'이라고 한다.
1. 튜플 사용 시
number[]로 추론as const 사용으로 해결as const 사용 시 readonly 주의2. 객체 사용 시
as const로 해결3. 콜백 사용 시