Typescript - any, unknown, never 차이점 정리

반응형

any

let name: any;

타입스크립트에서 가장 유연한 성격을 가진 타입입니다.

모든 타입의 값도 받을 수 있습니다.

유연해서 많이 사용할 것 같지만 사용을 지양하는 것이 좋습니다.

 

any를 사용하면 타입스크립트 컴파일러 작동을 하지 않아, 타입을 검사하는 부분이 없어지게 됩니다.

이렇게 된다면 일반 자바스크립트와 차이점이 없어지게 됩니다.

타입스크립트에서 어떠한 타입을 사용할지 정확하게 설정해주어야 합니다.

 

unknown

let name: unknown

 

unknown 타입은 어떠한 값이든 저장이 가능합니다.

하지만, any 타입과는 다른 점이 있습니다. 

 

값을 입력하고 값을 전달하려고 하면 에러가 발생합니다.

조금 더 제한 적입니다.

 

any 보다 나은 점은 할 수 없는 작업이 에러가 발생한다는 점입니다.

const name: unknown = 'superman';
let userName: string;

userName = name; // error

if (typeof name === 'string') {
   userName = name;
}

 

never

function showError(): never {
   throw "Show Error:
}

아무것도 반환하지 않는 타입입니다. void 와는 다른 타입입니다.

 

함수 내에서 에러가 발생하거나, 값을 반환하지 않을 때 사용합니다.

코드가 논리적으로 발생하지 않는 경우에 사용 됩니다.

 

728x90
반응형