함수 return 값에 붙일 수 있는 타입으로,
1. return 값이 없어야 하고, 2. 함수 실행이 끝나지 않아야 한다(=endpoint가 없어야 한다)
function func() :never{
while ( true ) {
console.log(123)
}
}
//or
function func() :never{
throw new Error('에러메세지')
}
* while 은 소괄호의 조건식이 true일 경우 계속 내부 코드를 실행한다 👉 무한 실행
* throw new Error( )는 강제로 에러를 발생시킨다
함수 내부에서 코드 실행이 끝나는 함수는 never를 붙일 수 없다
function func(){
console.log(123)
}
* 모든 함수는 return undefined 를 가지고 있다(return이 없는데 함수가 실행되는 이유)
return하고 싶지 않을 때는 보통 void 타입을 사용한다. never 타입은 쓸 일이 없다는 뜻이다.
그럼에도 알아둬야 하는 이유는 코드를 잘 못 짰을 때 자동으로 등장하기 때문이다
never 타입이 등장하는 경우
1. 어딘가 이상한 narrowing
: parameter가 string 타입 밖에 없는데 else를 사용했을 때 never가 등장한다
function func(parameter: string) {
if(typeof parameter === "string"){
console.log(parameter)
} else { 👈
console.log(parameter)
}
}
2. 어떤 함수 표현식
: 아무것도 return 하지 않고, 끝나지도 않을 경우 never 타입이 자동으로 할당된다
let func = function (){
throw new Error()
}
📌 결론
: never가 보이는 경우 코드를 수정하자!
Ref
https://codingapple.com/course/typescript-crash-course/
빠르게 마스터하는 타입스크립트 - 코딩애플 온라인 강좌
누구나 마음 한켠엔 나만의 웹서비스를 만들고 싶어합니다. 프론트엔드는 어찌저찌 하겠는데 서버 만드는게 어렵고 귀찮다고요? 그렇다면 Firebase를 쓰십시오. 구글이 웹서버를 대신 만들어
codingapple.com
'TypeScript' 카테고리의 다른 글
[TypeScript] Narrowing ++ (0) | 2022.03.03 |
---|---|
[TypeScript] Rest, Destructuring Type (0) | 2022.02.25 |
[TypeScript] Interface (0) | 2022.02.23 |
[TypeScript] Strict, HTML 조작할 때 주의점 (0) | 2022.02.19 |
[TypeScript] Function, Method alias Types (0) | 2022.02.18 |