Daily Front_Minhhk

[TS] 타입 알리어스(type-aliases) 본문

Study/Typescript

[TS] 타입 알리어스(type-aliases)

Minhhk 2023. 5. 5. 16:23
타입 별칭을 통해 지정할 타입을 변수화 해준다.
타입 지정 시
더 복잡한 타입 정의를 원하거나,
불필요한 반복을 피하고 타입을 중심에서 관리할 수 있으며,
코드의 지저분함 방지와 재사용 능력 UP

 


type Combinable = number | string;
type ConversionDescriptor = 'as-number' | 'as-text';

리터럴 타입도 타입 알리어스로 지정가능!

 

리터럴 타입의 '스트링'은 'as-number' | 'as-text' 이외에는 에러가 뜬다.

더 확실한 검증 장치? 라고 할 수 있는데
지정한 스트링은 기억하고 까먹으면 찾아봐야하는 단점이 있다.

 

 

>> 예시

type Combinable = number | string;
type ConversionDescriptor = 'as-number' | 'as-text';

function combine(
  input1: Combinable,
  input2: Combinable,
  resultConversion: ConversionDescriptor
) {
  let result;
  if (typeof input1 === 'number' && typeof input2 === 'number' || resultConversion === 'as-number') {
    result = +input1 + +input2;
  } else {
    result = input1.toString() + input2.toString();
  }
  return result;
}

 

 


 

function greet(user: { name: string; age: number }) {
  console.log('Hi, I am ' + user.name);
}
 
function isOlder(user: { name: string; age: number }, checkAge: number) {
  return checkAge > user.age;
}

 

타입 알리어스 지정 후

type User = { name: string; age: number };
 
function greet(user: User) {
  console.log('Hi, I am ' + user.name);
}
 
function isOlder(user: User, checkAge: number) {
  return checkAge > user.age;
}

 

더 깔끔 하다!