[TypeScript] 타입 추론(Type Inference)

Dodam·2024년 1월 17일
0

[TypeScript]

목록 보기
8/11
post-thumbnail

Type Inference

타입 추론이란 TypeScript에서 명시적인 타입 표기가 없을 때, 타입 정보를 제공하기 위해 사용된다.
쉽게 말하면 자동으로 타입을 결정해주는 것이다.
변수를 선언하거나 초기화할 때, 변수, 속성, 인자의 기본 값, 함수의 반환 값 등을 설정할 때 타입 추론이 일어난다.

let x = 3;  // let x: number
let y = "5";  // let y: string

이렇게 작성하면 typescript는 자동적으로 타입을 추론하여 알맞은 타입을 결정한다.

Best Common Type

여러 타입을 동시에 사용할 경우, 최적의 공통 타입을 자동으로 계산해준다.

let arr = [0, 1, null];  // let arr: (number | null)[]

Contextual Typing

또한, 문맥을 체크하여 타입을 결정짓기도 한다.

// window.onmousedown 타입 검사 후, 함수 타입이 마우스 이벤트와 연관있다고 추론
// 따라서, mouseEvent에 button 속성이 있다고 결론 내림
window.onmousedown = function(mouseEvent) {
	console.log(mouseEvent.button);  // OK
};

// window.onscroll 타입 검사 후, button 속성이 없다고 추론하므로 에러 발생
window.onscroll = function(uiEvent) {
	console.log(uiEvent.button);  // Error
}

타입스크립트의 타입 체킹

타입 체크는 값의 형태에 기반하여 이루어져야 한다.
이를 Duck Typing 또는 Structural Subtyping 이라고 한다.

  • Duck Typing: 객체의 변수 및 메서드 집합이 객체 타입을 결정 (동적 타이핑의 한 종류)
  • Structural Subtyping: 객체의 실제 구조나 정의에 따라 타입을 결정
profile
⏰ Good things take time

0개의 댓글