타입추론 : Type Inference
🔹 타입추론?
타입 스크립트가 코드를 해석해 나가는 동작
🔹 타입 추론의 기본
let a; // let a:any
let a = 10; // let a:number
let a = 'abc'; // let a:string
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
- 동적 타이핑의 한종류.
- 객체의 구조나 정의에 따라 타입을 결정하는 것을 의미
참고
타입스크립트 핸드북
캡틴판교_타입스크립트 입문
Author And Source
이 문제에 관하여(타입추론 : Type Inference), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gay0ung/타입추론-Type-Inference저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)