응답의 타입을 모를때는 'unknown' 라는 타입을 사용
let a:unknown;
let b = a+1 //error
a타입이 unknown이기 때문에 에러가 난다.
let a:unknown;
if(typeof a === 'number'){
let b = a+1
}
먼저 typeof a 가 number인지 확인을 하는 코드를 작성하면 Typescript가 문제없이 작업을 허용해준다
void는 아무것도 return하지 않는 함수를 대상으로 사용
function hello():void{
console.log('x')
}
원한다면 써도 되지만 보통은 쓰지 않고 typescript가 아무것도 return하지 않는다는 것을 자동으로 인식한다.
never는 함수가 절대 return하지 않을 때 발생
function hello():never{
throw new Error("xxx")
}
return 하지 않고 오류를 발생시키는 함수
function hello(name:string|number){
if(typeof name === "string"){
name //string
} else if (typeof name === "number"){
name //number
} else {
name //never
}
}
만약 타입이 올바르게 들어왔다면 string name 과 number name 둘 중에 하나는 작동할 것이고 마지막 name은 절대 실행되면 안된다