const assertion
assertion?
- 단언? 이라고 보는게 좋을듯하다
const assertion
- let 변수에 대해서도 const 변수를 사용할 때와 같은 타입 추론 규칙을 적용할 수 있다
as const
라는 키워드로 타입 단언을 하면 된다.
let hello = 'world' as const
// in ts
let hello = <const>'world'
hello = 'earth' // 컴파일 타임 에러
객체에 대한 const assertion
- 객체에 대입해서 타입추론을 해보면
const obj = {
hello: 'world'
}
/*
const obj = {
hello: string
}
*/
- const로 선언되어도, 객체 내부 속성에 대한 타입은 넓은 범위로 추론된다
- 왜냐면, const는 재할당이 안될뿐, 객체 내부의 값의 변경은 가능하기 때문
- 이럴 경우 as const를 통해 타입 추론의 범위를 좁힐 수 있다
// hello만 assertion
const obj = {
hello: 'world' as const,
foo: 'bar'
}
// 모든 속성에 대해 assertion
const obj = {
hello: 'world',
foo: 'bar'
} as const
- 결과는 readonly 속성이 된다.
출처
Author And Source
이 문제에 관하여(const assertion), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leebonggu12/const-assertion저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)