몽땅뚝딱 개발자

[TypeScript] as const / const 단언문 본문

Development/Typescript

[TypeScript] as const / const 단언문

레오나르도 다빈츠 2022. 11. 20. 15:13

 

◽ 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

 

 

 


 

 

소제목

 

 


개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.

 

 

Comments