타입 가드
- 원하는 타입으로 타입을 좁히기 위한 작업
type Age = 'string' | 'number'
function getAge(age: Age) { .. }
이 경우 함수 파라미터로 문자열이 와야할까 숫자가 와야할까? 둘 다 올수있지만, 그렇다고 함수 안에서 age.length 이런 식으로 접근하면 에러가 발생한다. 그 이유는 age의 type이 확정되지 않았기 때문. 따라서, 아래와 같이 예외 처리를 통해 타입을 좁히는 것을 타입가드라고 한다.
...
if (typeof age === 'string') { age.length; ....}
typeof, instanceof
이 연산자들을 타입 가드 연산자라고 한다.
이외에도 커스텀 타입 가드 함수를 만들 수도 있다.
function isString(age: string | number): age is string {
return typeof age === 'string';
};
function getAge(age: string | number) {
if (isString(age)) {
// 이 블록에서 age의 타입은 문자열로 추론됨
age.length;
}
}
문자열 or 숫자 타입을 받아서 문자열로 범위를 좁혀주는 타입 가드 함수로써 isString 을 만들고, 사용할 수 있다.
'언어 > TypeScript' 카테고리의 다른 글
spread operator (0) | 2025.04.30 |
---|---|
Type Assertion (as 사용법) (0) | 2025.04.16 |
type vs interface (0) | 2025.04.16 |
타입 호환성 (0) | 2025.04.15 |
타입 추론 (0) | 2025.04.15 |