티스토리 뷰
🍉 void 타입
아무런 값도 없음을 의미하는 타입
아무런 값도 반환하지 않는 함수의 반환값 타입 또는 변수의 타입을 정의할 때 사용한다.
// 문자열을 반환하는 함수
function func1():string {
return "hello"
}
// 아무런 값도 반환하지 않는 함수
function func2():void{
console.log("hello");
}
// 변수에도 void 타입을 정의할 수 있음
let a:void;
단, void 타입의 변수에는 undefined 이외의 다른 타입의 값은 담지 못한다.
하지만 tsconfig.json에 엄격한 null 검사(strictNullChecks) 옵션을 해제(False)로 설정하면 특수하게 void 타입의 변수에 null 값을 담을 수 있다.
// tsconfig.json
{
"compilerOptions": {
...
"strictNullChecks": false,
},
...
}
// chapter7.ts
let a:void;
a=null;
현재 5.1 버전으로 업데이트되면서 아무것도 반환하지 않는 함수의 반환갑 타입으로 undefined를 명시해도 문제가 발생하지 않는다.
(5.0버전)
🍏 그런데 null과 nudefined가 존재하는데 왜 void 타입이 추가로 필요할까?
더보기
반환값 타입을 undefined 또는 null 타입으로 설정하는 경우 함수는 진짜 undefined 또는 null을 반환해야한다.
따라서 return문 자체가 없는 함수의 반환값 타입을 정의해야하는 경우 void 타입을 이용해야 한다.
🍉 never 타입
불가능을 의미하는 타입
함수가 어떠한 값도 반환할 수 없는 상황일 때 해당 함수의 반환값 타입을 정의할 때 사용한다.
// 무한루프를 타는 함수
function func3():never{
while(true){}
}
// 의도적으로 오류를 발생시키는 함수 -> 반환값 없음
function func4():never{
throw new Error();
}
never타입 또한 변수에 정의할 시 any를 포함한 어떠한 타입의 값도 변수에 담을 수 없다.
tsconfig.json의 strictNullChecks를 false로 설정한 경우에도 null을 담을 수 없다.
728x90
'코딩 > 한 입 크기로 잘라먹는 타입스크립트' 카테고리의 다른 글
[TypeScript] 타입 계층도와 타입 호환 (0) | 2023.08.09 |
---|---|
[TypeScript] 집합의 관점에서의 타입스크립트 (0) | 2023.08.08 |
[TypeScript] Any 타입과 Unknown 타입 (0) | 2023.07.04 |
[TypeScript] 열거형(Enum) 타입 (0) | 2023.07.02 |
[TypeScript] 타입 별칭과 인덱스 시그니처 (0) | 2023.06.28 |