
195
9
장
타입 제한자
변경해서 이전에 작동하던 코드에 문제가 발생할 경우, 타입 시스템이 여러분을 구해주지 못할
수 있음을 의미합니다. 필자는 이중 타입 어서션 사용을 권장하기 위해서가 아니라 타입 시스
템 설명을 돕기 위한 사전 예방 차원에서 이 주제를 살펴봤습니다.
9.5
constconst
어서션 어서션
6
장 ‘배열’에서 가변적인 배열 타입을 읽기 전용 튜플 타입으로 변경하는
as
const
구문을 소
개하면서 이 책의 후반부에서 더 많이 사용하겠다고 약속했습니다. 바로 이번 절에서 더 자세
히 살펴보겠습니다.
const
어서션은 배열, 원시 타입, 값, 별칭 등 모든 값을 상수로 취급해야 함을 나타내는 데 사
용합니다. 특히
as
const
는 수신하는 모든 타입에 다음 세 가지 규칙을 적용합니다.
●
배열은 가변 배열이 아니라 읽기 전용 튜플로 취급됩니다.
●
리터럴은 일반적인 원시 타입과 동등하지 않고 리터럴로 취급됩니다.
●
객체의 속성은 읽기 전용으로 간주됩니다.
다음 배열이 튜플로 간주되는 것처럼 배열이 튜플이 되는 것을 이미 보았습니다.
// 타입: (number | string)[]
[0, ''];
// 타입: readonly [0, '']
[0, ''] as const;
as
const
가 생성하는 다른 두 가지 변경 사항을 살펴보겠습니다.
9.5.1