[Typescript] 타입스크립트 타입 추론

problem_hun·2023년 3월 20일
0

타입스크립트

목록 보기
12/16
post-thumbnail

타입 추론

타입 추론이란 할당된 데이터의 타입을 타입스크립트가 추론하는 것을 의미한다.

변수의 타입 추론

변수 a를 할당없이 선언만 하게 되면 a의 타입은 any(모든 타입이 될 수 있는 상태)가 된다.
숫자를 할당하게 되면 타입은 number가 되고,문자열을 할당하게 되면 타입은 string이 된다.


함수의 타입 추론

함수의 파라미터와 리턴값의 타입에 대해서도 자동으로 추론이 이루어진다.


인터페이스와 제네릭의 타입 추론


변수에 인터페이스와 제네릭의 타입을 지정하면 변수를 할당할 때 그에 맞는 타입이 추론되며, 타입에 맞게 할당하지 않으면 에러가 난다.


Best Common Type

타입스크립트는 표현식을 이용하여 가장 근접한 타입을 추론하게 되는데 이 가장 근접한 타입을 Best Common Type이라고 한다.

Animal이라는 빈 클래스와 이를 상속하여 Rhino, Elephant, Snake라는 클래스를 만들어보자. 그리고 이 클래스들을 zoo라는 배열로 만들어보자.

class Animal {}

class Rhino extends Animal {
  hasHorn: true;
}
class Elephant extends Animal {
  hasTrunk: true;
}
class Snake extends Animal {
  hasLegs: false;
}

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

이상적으로는, zoo 가 Animal[] 타입으로 추론되기를 원할 수 있지만, 배열 안에 Animal 타입의 객체가 없다면, 엄격하게 판단하여 Animal[] 타입으로 추론하지 않는다. 최적 공통 타입이 발견되지 않으면, 추론 결과는 유니언 배열 타입 (Rhino | Elephant | Snake)[] 이다.

이를 수정하려면 유형을 명시적으로 제공해야 한다.

profile
문제아

0개의 댓글