사용자 도구

사이트 도구


typescript:type_inference

문서의 이전 판입니다!


Type Inference

let x = 3;

x의 타입은 number로 유추된다. 이러한 종류의 추론은 변수와 멤버를 초기화하고, 매개변수 기본값을 설정하고, 함수 반환 타입을 결정할 때 발생합니다.

대부분의 경우 타입유추는 간단하지만 그 미묘한 차이를 알아보자!

Best common type

let x = [0, 1, null];

best common type 알고리즘은 각각의 후보들(number, null)을 고려한 뒤에, 모든 후보군을 포괄할 수 있는 타입을 선택합니다.

let zoo = [new Rhino(), new Elephant(), new Snake()];

이상적으로 zoo가 Animal[]로 추론되기를 원하지만, 배열에 Animal 타입이 후보군에 없음으로, 타입의 추론이 불가능합니다. 이걸 고치기 위해서, 어떤 타입도 다른 타입의 super 타입이 아닐 경우 명시적으로 super 타입을 적어주어야 합니다.

let zoo:Animal[] = [new Rhino(), new Elephant(), new Snake()];

만약 best common type이 발견되지 않았을 경우, 추론의 결론은 union 배열타입(Rhino | Elephant | Snake)이 됩니다.

typescript/type_inference.1564369846.txt.gz · 마지막으로 수정됨: 2025/04/15 10:05 (바깥 편집)