한 입 크기로 잘라먹는 Ts - 그 외의 타입들

한 입 크기로 잘라먹는 Ts - 그 외의 타입들

any, unknown, void, never ❓

·

2 min read

이정환 님의 한 입 크기로 잘라먹는 타입스크립트 를 수강한 내용 입니다.

any

any 타입은 타입스크립트에서만 제공되는 특별한 타입으로 타입 검사를 받지 않는 특수한 타입 입니다.

다음과 같은 변수가 있다고 가정해봅시다.

1

타입스크립트에서는 변수의 타입이 변수를 초기화할 때 초기화 하는 값을 기준으로 추론하기 때문에 이렇게 하면 오류가 발생합니다.

  • 이럴 때 any 타입을 사용하면 어떠한 타입 검사도 받지 않습니다.

  • 즉, 아무 타입의 값을 받을 수 있고 관련 메서드도 호출 할 수 있습니다.

2

편한 만큼 위험한 any 타입

위의 코드를 컴파일 하면 런타임 오류가 발생 합니다.

  • any 타입은 타입 검사를 받지 않는 타입이므로 모든 타입스크립트의 문법과 규칙으로부터 자유롭지만 그만큼 위험한 타입입니다.

  • any 타입을 많이 사용하면 타입 검사가 제대로 이루어지기 않기 때문에 타입스크립트를 사용하는 이유가 없습니다.

3

unknown 타입

unknown 타입은 any 타입과 비슷하지만 보다 안전한 타입 입니다.

  • unknown 타입의 변수는 다음과 같이 어떤 타입의 값이든 다 저장 할 수 있습니다.

4

unknown 특징

  • 그러나 반대로 unknown 타입의 값은 어떤 타입의 변수에도 저장할 수 없습니다.

  • 또 unknown 타입의 값은 어떤 연산에도 참여할 수 없으며, 어떤 메서드도 사용할 수 없습니다.

5

만약 위와 같이 unknown 타입의 값을 number 타입의 값처럼 취급하고

  • 곱셈 연산을 수행하게 하고 싶다면 다음과 같이 조건문을 이용해 이 값이 number 타입의 값 임을 보장 해줘야 합니다.

6

any 보다 unknown ?

특정 변수가 당장 어떤 값을 받게 될 지 모른다면

  • any 타입으로 정의하는 것 보단 unknown 타입을 이용하는게 훨씬 안전한 선택이 됩니다.

void 타입

void 타입은 아무런 값도 없음을 의미하는 타입 입니다.

  • 보통 아무런 값도 반환하지 않는 함수반환 값 타입을 정의 할 때 사용 합니다.

7

never 타입

never 타입은 불가능을 의미하는 타입 입니다.

  • 다음과 같이 함수가 어떠한 값도 반환할 수 없는 상황일 때 해당 함수의 반환 값 타입을 정의할 때 사용됩니다.

  • 불가능 한 값의 타입을 정의할 때 never 타입 사용

8

또한 변수의 타입을 never로 정의하면 any를 포함해 그 어떠한 값도 담을 수 없습니다.

9