문서의 이전 판입니다!
let x = 3;
x의 타입은 number로 유추된다. 이러한 종류의 추론은 변수와 멤버를 초기화하고, 매개변수 기본값을 설정하고, 함수 반환 타입을 결정할 때 발생합니다.
대부분의 경우 타입유추는 간단하지만 그 미묘한 차이를 알아보자!
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)이 됩니다.