-
함수에 사용하는 never타입Typescript 2022. 6. 17. 11:30
never은 function의 return값에 붙일 수 있는 타입이다.
function 함수() :never{ }
이렇게 사용하며, 조건이 있다.
1. return 값이 없어야한다.
2. endpoint가 없어야 한다. 즉, 끝나지않아야 한다. 끝나지않는 함수를 만들기위해 에러를 내준다.
throw new Error()를 써줘서 코드실행을 중단해줄 수 있다.
while (true)이것도 무한히 돌기에 끝나지않는다.
never을 실무에선 쓸일이 없다. 대부분 void타입을 쓰면 되기 때문이다.
그래도 알아야되는건 가끔 코드를 이상하게 짜면 never타입이 등장하기 때문이다.
1. 뭔가 이상한 narrowing을 할 때
function 함수(parameter: string) { if ( typeof parameter === "string"){ parameter + 1; } else { parameter; } }
파라미터가 string이라서 애초에 narrowing을 할 필요 없는데 하면, else의 파라미터 타입이 never가 된다.
2. 어떤 함수표현식은 return 타입이 자동으로 never된다.
let 함수2 = function (){ throw new Error() }
이렇게 함수를 만들면 함수에 마우스커서를 올려보면 타입이 never라고 뜬다.
즉 위처럼 뜨면 뭔가 이상하다 라고 알려주는게 된다.
'Typescript' 카테고리의 다른 글
protected, static (0) 2022.06.17 객체지향언어같은 문법제공(public, private) (0) 2022.06.17 narrowing이나 더 알아보기 (0) 2022.06.17 함수의 rest파라미터와 destructuring타입지정 (0) 2022.06.17 Object에 타입지정시 interface (0) 2022.06.17