let a: void;
a = undefined;
이번에는 타입스크립트의 void와 never 타입을 다룰 것이다. 이번까지의 글로 기초적인 타입은 끝난다. (야호!)
void 타입
void이란 "공허" 즉, 아무것도 없다는 뜻이다. void는 아무것도 없음을 뜻한다.
예시 코드 >
function func2(): void {
console.log("hello");
}
물론 다음과 같이 변수의 타입으로도 void 타입을 지정할 수 있다. 그러나 void 타입의 변수에는 undefiend 이외의 다른 타입의 값은 담을 수 없다.
let a: void;
a = undefined;
이때 tsconfig.json에 엄격한 null 검사 옵션을 해제하면 특별하게 void에도 null을 담을 수 있다.
// "strictNullChecks: false" 일 경우
let a: void;
a = undefined;
a = null;
never 타입
never 타입은 "불가능"을 뜻하는 타입이다.
보통 다음처럼 함수가 "어떠한 값도 반환 불가능할 때" 사용한다.
function func3(): never {
while (true) {}
}
무한 루프가 돌면서 아무것도 반환이 불가능한 함수이다. 참고로 "의도적으로 에러"를 던지는 함수도 가능하다.
예시 코드 >
function func4(): never {
throw new Error();
}
전체적인 코드 >
// void
// void -> 공허 -> 아무것도 없다.
// void -> 아무것도 없음을 의미하는 타입
function func1(): string {
return 'hello';
}
function func2(): void {
console.log('hello');
}
// never
// never -> 존재하지 않는
// 불가능한 타입
function func3(): never {
while (true) {}
}
function func4(): never {
throw new Error();
}
let anyVar: any;
let a: never;
// a = 1;
// a = {};
// a = "";
// a = undefined;
// a = null;
// a = anyVar;
'FE > TypeScript' 카테고리의 다른 글
타입스크립트에서 타입은 집합이다. (1) | 2025.04.28 |
---|---|
타입스크립트의 Any타입 / Unknown타입 (0) | 2025.04.19 |
타입스크립트의 enum 타입 (4) | 2025.04.17 |
타입스크립트의 타입 별칭과 인덱스 시그니처 (1) | 2025.04.15 |
타입스크립트의 객체를 다루는 방식 (1) | 2025.04.10 |