위의 블로그를 번역한 글입니다. 자세한 글은 위 블로그를 참고해주세요.
다음 코드를 읽고 머릿속에서 각 할당에 대한 오류가 있는지 예측해보세요.
let stringVariable: string = 'string'
let anyVariable: any
let unknownVariable: unknown
anyVariable = stringVariable
unknownVariable = stringVariable
stringVariable = anyVariable
stringVariable = unknownVariable
→ stringVariable = anyVariable
string type에 any 값을 대입해서 오류가 생길 것 같다.
→ stringVariable = unknownVariable
string type에 unknown 값을 대입해서 오류가 생길 것 같다.
결과는?
let stringVariable: string = "string";
let anyVariable: any;
let unknownVariable: unknown;
anyVariable = stringVariable;
unknownVariable = stringVariable;
stringVariable = anyVariable;
stringVariable = unknownVariable; // 'unknown' 형식은 'string' 형식에 할당할 수 없습니다.
let stringVariable: string = 'string'
let anyVariable: any
let neverVariable: never
neverVariable = stringVariable
neverVariable = anyVariable
anyVariable = neverVariable
stringVariable = neverVariable
→ stringVariable = neverVariable
string type에 never 값을 대입해서 오류가 생길 것 같다.
→ anyVariable = neverVariable
any type에 never type은 호환이 되지 않을 것 같아 오류가 생길 것 같다.
결과는?
let stringVariable: string = "string";
let anyVariable: any;
let neverVariable: never;
neverVariable = stringVariable; // 'string' 형식은 'never' 형식에 할당할 수 없습니다.
neverVariable = anyVariable; // 'any' 형식은 'never' 형식에 할당할 수 없습니다.
anyVariable = neverVariable;
stringVariable = neverVariable;
let undefinedVariable: undefined
let voidVariable: void
let unknownVariable: unknown
voidVariable = undefinedVariable
undefinedVariable = voidVariable
voidVariable = unknownVariable