반응형
코딩애플 강의를 보고 복습하려고 적는 글임니돠.
never 타입은 아래 두 경우의 함수에서 나타난다.
- 무한루프, throw Err 등 끝나지 않는 함수
- 리턴이 없는 함수
실전에서 never타입은 쓸일이 없다고 한다. void로 대체 가능하니깐
그럼에도 never 타입을 알아야 하는 이유는 함수을 이상하게 짰을때 등장하기 때문, 그럼 알아먹을 수 있어야하니깐.
function seunghhhhh(parameter:string){
if(typeof parameter==="string") {
console.log(parameter)
}else{
//else가 말이 되냐? 말이 안됨
console.log(parameter)
}
}
위와 같이 함수를 작성했다고 해보자.
else는 말이 안된다. parameter는 무조건 string만 들어오니까.
이때 else문 내부의 parameter에 마우스를 올려보면 never로 나옴.
else내부의 console.log(53번줄)가 실행될 일이 없다. 를 표현하기 위해 parameter의 타입이 never가 된다.
=> NEVER 타입 보이면 코드 어딘가가 이상한 것이다.
'내코드가 왜이러지? 뭔가 이상하다' 정도만 느낄 수 있으면 됨.
혹은 특정 함수표현식에서도 NEVER가 등장한다.
위 함수는 강제로 에러를 뱉는 함수다. undefined도 null도 아무것도 남지 않는 함수이다.
때문에 never 타입임.
반응형
'개발 > TypeScript' 카테고리의 다른 글
Generic (0) | 2022.05.09 |
---|---|
Enum (0) | 2022.05.06 |
typeof로 object를 구분할 수 없을때 narrowing 하는 방법 : IN 연산자 (0) | 2022.01.19 |
타입스크립트 : rest파라미터의 타입 (0) | 2022.01.18 |
Type alias와 interface 차이 (0) | 2022.01.15 |