본문 바로가기
개발 일지/TIL

[ TypeScript ] Union 타입 & Type Alias (사용자 정의 타입)

by CODESIGN 2023. 1. 16.

OR 연산자 ( A || B )


printOut함수는 input 파라미터를 받아서 해당 파라미터를 출력해 준다. 

 

const printOut = (input: string | number) => { // 문자열 또는 숫자형이 올수있다.
	console.log(input);
}

printOut('문자열'); // 문자열
printOut(20); // 20
printOut(true); // Error

 

 

typeof


toFiexed()는 소수에 사용된다. typeof을 사용하여 number일 경우와 string일 경우를 조절해 줄 수 있다. 

 

function getAge(age: number | string) {
  if (typeof age === 'number') {
    age.toFixed();
    return age;
  }
  if (typeof age === 'string') {
    return age;
  }
}

getAge('20');
getAge(20);

 

 

padLeft


padLeft함수는 value와 padding을  파라미터로 받는다.

 

function padLeft(value: string, padding: any) {
  if (typeof padding === 'number') {
    return Array(padding + 1).join(' ') + value;
  }
  if (typeof padding === 'string') {
    return padding + value;
  }
  throw new Error(`Expected string or number, got '${padding}'.`);
}

console.log(padLeft('Hello world', 4)); // "    Hello world"
console.log(padLeft('Hello world', '!!!')); // "!!!Hello world"
console.log(padLeft('Hello world', true)); // Error

 

 

Type Alias (사용자 정의 타입)


const hero1: { name: string; power: number; height: number } = {
  name: '슈퍼맨',
  power: 1000,
  height: 190,
};

const printHero = (hero: { name: string; power: number; height: number }) => {
  console.log(hero.name, hero.power);
};

console.log(printHero(hero1));

매번 타입을 새로 작성하는 건 번거롭고 재사용이 불가능하다.

 

type 키워드를 사용하면 효율적이다. 

 

// type.ts
// Type Alias(타입 별칭)
type Hero = {
	name: string;
	power: number;
	height: number;
};

 

type.ts적어준 type Hero를 import해서 사용하기.

import type { Hero } from './type';

const hero1: Hero = {
  name: '슈퍼맨',
  power: 1000,
  height: 190,
};

const printHero = (hero: Hero) => {
  console.log(hero.name, hero.power);
};

console.log(printHero(hero1));

 

 

댓글