-
[Typescript] any, unknown, never 차이JavaScript/TypeScript 2023. 9. 20. 13:48728x90
any
타입스크립트에서 any는 어떠한 타입이든 허용하는 타입입니다. 타입스크립트는 any 타입에 대해서 엄격하게 체크하지 않기 때문에 모든 타입의 연산을 적용할 수 있습니다. 그로인해 문제가 발생할 수 있는 코드도 컴파일 시 에러가 검출되지 않습니다.
아래 예시 코드도 컴파일 시에는 문제가 발생하진 않지만 런타임 환경에서 사이드 이펙트가 발생할 수 있습니다.
const foo: any = 10; console.log(foo.length); // undefined
unknown
unknown은 타입스크립트의 Top-Type으로 타입스크립트에서 존재하는 모든 타입을 할당할 수 있습니다. 하지만 any와의 차이점은 모든 타입의 공통적인 연산만 수행할 수 있다는 점입니다.
const foo: any = 10; console.log(foo.length); // compile error
never
타입스크립트에서 never은 값이 없다는 것을 의미 합니다. 그렇기 때문에 any타입의 값 또한 never 변수에 할당할 수 없습니다.
never은 함수가 아무것도 반환하지 않을 경우 함수의 리턴 타입으로 지정할 수 있습니다. void와의 차이점은 void는 null 또는 undefined를 반환할 수 있지만 never은 허용하지 않습니다.
728x90'JavaScript > TypeScript' 카테고리의 다른 글
[Jest] 절대 경로 적용법 (0) 2021.12.18 [Typescript] tsconifg 옵션 (0) 2021.02.07 Parsing error: Unexpected token = (0) 2020.11.04 [TypeScript] Cannot write file '...' because it would overwrite input file. (0) 2020.11.01 [TypeScript] TypeScript란? (0) 2020.07.08