본문 바로가기
coding/typescript

[TypeScript] 기초와 유니온

by 코딩희송 2021. 3. 21.

안녕하세요! 코딩히송입니다.

오늘 포스팅은 타입스크립트 객체 타입 인터페이스를 관리하는 방법을 정리해보았습니다 :)

먼저, 익명으로 관리하는 것부터 살펴볼까요?

const greet = (person: {name: string; age: number}) => {
    return "Hello" + person.age;
}

인터페이스 설정해서 관리하기:

interface Person {
    name: string;
    age: number;
}

const greet = (person: Person) => {
    return "Hello" + person.age;
}

타입 별칭 사용해서 관리하기:

type Person = {
    name: string;
    age: number;
}

const greet = (person: Person) => {
    return "Hello" + person.age;
}

Union Types

다양한 연산자를 사용하여 기존 유형에서 새로운 유형을 만들 수 있습니다.

유니온 타입 정의

문자열이나 숫자에 대해 작동 할 수있는 함수를 작성해 보겠습니다.

const printId = (id: number | string) => {
    console.log("Your ID is: " + id);
}

printId(101) // OK!
printId('101') // OK!
pirntId({myId: 101}) // Error!

예를 들어, 유니온 문자열에서만 사용할 수있는 메서드는 사용할 수 없습니다.

const printId = (id: number | string) => {
    console.log(id.toUpperCase()); // => Error! 
    console.log("Your ID is: " + id);
}

해결책은 유형 어노테이션이없는 JavaScript에서와 마찬가지로 코드와의 결합을 좁히는 것입니다.
예를 들어, TypeScript는 문자열 값만 typeof 값 "string"을 가질 것임을 알고 있습니다.

const printId = (id: number | string) => {
    if (typeof id === "string") {
        console.log(id.toUpperCase());
    } else {
        console.log("Your ID is: " + id);
    }
}

또 다른 예제 (배열)

const welcomePeople = (x: string[] | string) => {
  if (Array.isArray(x)) {
    // Here: 'x' is 'string[]'
    console.log("Hello, " + x.join(" and "));
  } else {
    // Here: 'x' is 'string'
    console.log("Welcome lone traveler " + x);
  }
}

유니온 타입을 설정해서 관리할 때는 각 공통점이 있는지 체크해주는 것이 중요합니다!

'coding > typescript' 카테고리의 다른 글

[TypeScript] 타입과 인터페이스  (0) 2021.03.21
[TypeScript] .tsconfig 보일러 플레이트 제공  (0) 2021.03.21

댓글