| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- jsp
- SQL
- 프런트엔드
- 코드테스트
- 정리
- 코드 테스트
- 서버
- 디자인 패턴
- Next.js
- 알고리즘
- 오라클
- 백엔드
- 자바
- 미니정리
- jpa
- web
- 자바스크립트
- MySQL
- BACK-END
- 스프링부트
- 쿼리
- java
- oracle
- 데이터베이스
- JavaScript
- 프로그래머스
- 프론트엔드
- node.js
- spring
- 스프링
- Today
- Total
참치코더의 꿈 메모장
TypeScript / 타입 좁히기(Type Narrowing) 정리 본문

타입 좁히기는 값의 타입을 더 구체적으로 추론하도록 만드는 과정이다.
예를 들어, String / number 처럼 유니온 타입일때, 실제 실행 흐름에서 타입을 점점 특정 타입으로
좁혀 나가는 방식이다.
typeof (타입 가드)
- 기본적인 타입 좁히기 방식이다.
function print(value: string | number) {
if(typeof value === "string"){
console.log(value.toUpperCase());
} else {
console.log(value.toFixed(2));
}
}
- typeof 타입가드는 원시타입에 많이 사용된다.
in (타입 가드)
- 객체의 속성 존재 여부로 타입을 좁히는 방식이다.
type Dog = {
bark : () => void
};
type Cat = {
meow: () => void
};
function makeSound(animal: Dog | Cat) {
if ("bark" in animal) {
animal.bark(); // Dog
} else {
animal.meow(); // Cat
}
}
instanceof (타입 가드)
- 클래스 타입 좁히기
class Person { }
class Animal { }
function process(obj: Person | Animal){
if(obj instanceof Person){
// Person
} else {
// Animal
}
}
'TypeScript' 카테고리의 다른 글
| TypeScript / 함수 타입 정리 (0) | 2025.12.02 |
|---|---|
| TypeScript / 서로소 유니언 미니 정리 (0) | 2025.11.29 |
| TypeScript / 타입 단언 정리 (0) | 2025.11.27 |
| TypeScript / 대수 타입, 타입 추론 정리 (0) | 2025.11.25 |
| TypeScript / 기본 타입 호환성, 객체 타입 호환성 정리 (0) | 2025.11.24 |