Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 커스텀
- 제네릭
- 반복줄이기
- returnType
- javascript
- Chart.js
- 성능최적화
- const 단언문
- 티스토리꾸미기
- React.js
- utilty type
- 레이아웃쪼개기
- 누구나 자료구조와 알고리즘
- 2022
- 개발콘텐츠
- 타입스크립트
- vue.js
- 공통컴포넌트
- NonNullable
- JS console
- click and drag
- typescript
- reactjs
- 폰트적용하기
- React Native
- 타입좁히기
- 리액트
- react
- CSS
- TSDoc
Archives
- Today
- Total
몽땅뚝딱 개발자
[TypeScript] as const / const 단언문 본문
◽ as const
const는 변경할 수 없는 변수를 선언할 때 사용하는 것이고, as const와는 다르다.
as const는 타입스크립트가 해당 값에 추정되는 많은 타입들 중에서 최대한 좁은 타입으로 추론할 수 있도록 한다.
예를 들어, 원시형 타입은 const로 선언하면 변경이 불가능하지만 Array나 Object는 원시형 타입이 아닌 참조 타입이기 때문에 const로 선언하더라도 깊은(deep) 변경을 실행할 경우 값을 바꿀 수 있다. 따라서 참조 타입은 필요한 경우, const 단언문을 사용하여 타입을 좁히거나 변경할 수 없도록 만들 수 있다.
// 타입은 { x: number, y: number }
const v1 = {
x: 1,
y: 2,
};
v1.x = 3 // 정상: 변경이 가능하다.
// 타입은 { x: 1, y: number }
const v2 = {
x: 1 as const,
y: 2,
};
// 타입은 { readonly x: 1, readonly y: 2 }
const v3 = {
x: 1,
y: 2,
} as const;
v3.x = 3 // error: readonly 속성이므로 변경할 수 없다.
💡 빈 객체 선언 시 단언문 사용하기
interface Point = { x: number; y: number; }
// 빈 객체 선언 시에는 단언문을 사용하면 된다.
const pt = {} as Point
소제목
- https://velog.io/@logqwerty/Enum-vs-as-const
- 댄 밴터캄, 이펙티브 타입스크립트 (프로그래밍 인사이트, 2021)
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Typescript' 카테고리의 다른 글
[TypeScript] 이렇게도 사용할 수 있다! (1) (0) | 2022.11.21 |
---|---|
[TypeScript] 타입 좁히기 (0) | 2022.11.20 |
[TypeScript] Utility types - Readonly, ReturnType (0) | 2022.11.19 |
[TypeScript] interface와 type의 차이 (0) | 2022.11.14 |
[TypeScript] 타입 선언과 타입 단언 (0) | 2022.11.13 |
Comments