타입스크립트에서 가장 중요한 것은 Type Checker와 소통하는 것!
unknown
변수의 타입을 미리 알지 못할 때 사용함
any타입과 비슷하지만 any보다 unknown이 더 안전합니다.
이유는 unknown값으로 작업을 수행하는 것은 합법적이지 않기 때문입니다.
let a : unknown;
// api에서 정보를 전달받았을 때, 타입을 모를 경우
// a의 타입을 unknown로 설정
let b =a +1
// a의 타입이 unknown이기 때문에 오류
if(typeof a === 'number'){
let b =a +1
//a가 number이기 때문에 사용가능
}
if(typeof a === "string"){
let b = a.toUpperCase();
}
void
void는 값을 반환하지 않는 함수의 반환 값을 나타냅니다.
함수에 return 문이 없거나 해당 return 문에서 명시적 값을 반환하지 않을 때 항상 유추되는 타입입니다.
function hello() {
console.log('x')
}
// 위 함수는 아무것도 return 하지 않음
const a = hello();
a.toUpperCase() // error (a :void)
never
함수가 절대 return 하지 않을 때 발생 (값을 반환하지 않을 때)
함수가 예외를 throw하거나 프로그램 실행 종료함을 의미함
// return하지 않고 오류를 발생시키는 함수
// 기본 함수였다면, 오류를 발생시키지만 error를 return하기 때문에 정상 실행
function hello() : never {
throw new Error("xxx")
}
// 타입이 두가지일 수도 있는 상황에서 발생하는 never
function hello(name :string|number ){
// 타입이 올바르게 들어왔다면 string 이나 number 중에서 실행
if(typeof name === "string") {
name
}else if(rtpeof name === "number"){
name
}else{ // 이 코드는 실행되지 않을 코드
name
}
728x90
'TYPESCRIPT' 카테고리의 다른 글
[타입스크립트] generic 사용 / 코드챌린지(day3) (1) | 2022.09.22 |
---|---|
[타입스크립트] call signature / overloading / poly / generic (1) | 2022.09.21 |
[타입스크립트] ReadOnly / Tuple / any (0) | 2022.09.21 |
[타입스크립트] 타입(type)작성 / 코드 재사용 (0) | 2022.09.21 |
[타입스크립트] TYPESCRIPT란 (0) | 2022.09.19 |