2.7.6 타입 간 대입 가능표
타입 간 대입 가능 여부가 매우 헷갈리므로 표로 정리했습니다. 세로 항목이 가로 항목에 대입 가능하다면 ◯이고, 가능하지 않다면 ×입니다. 예를 들어 undefined는 void에 대입 가능하지만, void는 undefined에 대입할 수 없습니다. 타입은 언제나 같은 타입에 대입할 수 있으므로 대각선 부분은 생략했습니다(any -> any 부터 never -> never). 외울 필요는 없습니다. 대입이 불가능하다면 친절하게 Type A is not assignable to Type B 에러 메시지가 표시되니까요.
▼ 표 2-1 타입 간 대입 가능표
-> |
any |
unknown |
{} |
void |
undefined |
null |
never |
any |
|
O |
O |
O |
O |
O |
X |
unknown |
O |
|
X |
X |
X |
X |
X |
{} |
O |
O |
|
X |
X |
X |
X |
void |
O |
O |
X |
|
X |
X |
X |
undefined |
O |
O |
X |
O |
|
X |
X |
null |
O |
O |
X |
X |
X |
|
X |
never |
O |
O |
O |
O |
O |
O |
|
실제 코드로도 확인할 수 있습니다. 표대로 대입할 수 없는 경우 에러가 발생합니다.