타입추론 : Type Inference

y0ung·2020년 11월 27일
0

TypeScript

목록 보기
8/12

🔹 타입추론?

타입 스크립트가 코드를 해석해 나가는 동작

🔹 타입 추론의 기본

let a; // let a:any
let a = 10; // let a:number
let a = 'abc'; // let a:string

위와 같이 a에 대한 타입을 지정하지 않더라도 a는 any, number, string 순서로 간주 된다. 이렇게 변수를 선언하거나 초기화 할 때 타입이 추론된다. 이외에도 변수, 속성, 인자의 기본 값, 함수의 반환 값 등을 설정할 때 타입 추론이 일어난다.

인터페이스와 제네릭을 이용한 타입 추론 방식

interface Dropdown<T>{
  value: T;
  title: string;
}

let shoppingItem: Dropdown<string> = {
  value: 'acb',
  title:'hello'
}

위와 같이 제네릭에 <string>값을 지정해주면 value값은 string인 타입으로 추론이 된다.

복잡한 구조에서 타입 추론 방식

DetailedDropdown<K>에서 정의한 타입이 Dropdwon<K>에도 정의 된다.

🔹 Best Common Type 추론 방식

타입은 몇개의 표현식(코드)을 바탕으로 타입을 추론한다. 그리고 그 표현식을 이용해 가장 근접한 타입을 추론하는데 이를 ' Best Common Type ' 이라고 한다.

let arr = [1, 2, 3, true, 'sdff']

위 변수 arr의 타입을 추론할때 number ,boolean ,string 으로 구분되는데 이때 Best Common Type 알고리즘으로 다른 타입들과 가장 잘 호환되는 타입을 선정한다.

타입스크립트의 타입 체킹

타입 체킹에 있어서 타입스크립트의 지향점은 타입 체크는 값의 형태에 기반하여 이루어져야 한다는 점이다. 이걸 Duck Typing 또는 Structural Subtyping 이라고 한다.

Duck Typing

  • 객체의 변수 및 메서드의 집합이 객체의 타입을 결정하는 것을 의미.

Structural Subtyping

  • 동적 타이핑의 한종류.
  • 객체의 구조나 정의에 따라 타입을 결정하는 것을 의미

참고

타입스크립트 핸드북
캡틴판교_타입스크립트 입문

profile
어제보다는 오늘 더 나은

0개의 댓글