Front end/TypeScript

[ TypeScript ] 타입스크립트 타입 별칭 & 타입 추론 알아보기

_moda 2023. 6. 2. 05:13

타입스크립트의 타입 별칭 & 타입 추론에 대해 알아봅시다~!


타입 별칭 

  • 새로운 이름으로 기존의 타입을 참조하는 것을 의미한다.
  • 타입 별칭을 이용하여 타입의 새로운 이름을 만들 때 키워드 type을 이용하여 작성한다.
type MyString = string;

let str1: string = 'hello!';

// string 타입처럼 사용할 수 있다.
// myString과 string은 동일한 의미
let str2: MyString = 'hello world!';

타입 별칭 장점

  • 인터페이스나 다른 변수를 정의할 때 타입 별칭으로 정의한 타입을 참조하게 됨으로써 코드를 더 간결하고 가독성 좋게 만들 수 있다.

타입 별칭 단점

  • 타입 별칭은 말 그대로 타입에 새로운 이름을 부여하는 것에서 그치기 때문에 확장이 되지 않음
    • 그렇기 때문에 확장이 필요한 경우에는 인터페이스를 사용한다.(인터페이스는 기존 인터페이스 및 타입 별칭으로 만들어진 타입 둘 다 상속할 수 있음

타입 추론

  • 타입 추론은 변수나 함수의 타입을 선언하지 않아도 TypeScript가 자동으로 유추하는 기능이다.

타입스크립트가 타입을 추론하는 경우

  • 초기화된 변수
  • 기본값이 설정된 매개 변수
  • 반환 값이 있는 함수
let isNumber = 123; // isNumber : number

타입스크립트는 isNumber 타입을 자동으로 숫자로 추론한다.

최적 공통 타입

  • 여러 타입을 동시에 사용할 경우 최적 공통 타입을 알아서 계산해 준다.
let x = [0, 1, null]; // let x: (number | null)[]

x의 타입을 추론할 때는 배열의 각 아이템을 살펴보고 최적 공통 타입 알고리즘으로 다른 타입들과 가장 잘 호환되는 타입을 선택한다.

문맥상의 타이핑

  • 타입스크립트에서 타입을 추론하는 방식 중 하나이다.
  • 문맥상의 타이핑(타입 결정)은 코드의 위치(문맥)를 기준으로 정한다.
function add(a, b) {
  return a + b;
}

매개변수 ab가 모두 숫자 타입이라면, add 함수의 반환 값도 숫자 타입으로 추론한다.

타입 추론 장점

  • 코드의 가독성 향상
  • 개발 생산성 향상
  • 오류 발견 용이성

타입 추론 단점

  • 타입 추론이 잘못될 경우 코드 오류 발생
  • 명시적인 타입 지정이 필요한 경우가 있음