타입스크립트-유니온타입

Array.prototype·2022년 11월 30일
0

타입스크립트

목록 보기
1/4
class Dog {
  constructor(readonly name: string){}
  sayHello():string{
    return `Dog says Hello`
  }
}

class Fish {
  constructor(readonly name:string){}
  dive(howDeep: number):string{
    return `deep number is ${howDeep}`
  }
}

type Pet = Dog | Fish

function talkToPet(pet: Pet):string {
  if(pet instanceof Dog) {
    return pet.sayHello()
  } else if(pet instanceof Fish) {
    return 'fish cannot talk'
  } else {
    return 'nothing'
  }
}

console.log(talkToPet(new Dog('진돗개')))
console.log(talkToPet(new Fish('광어')))
  • 이미 선언된 타입들로 유니온을 선언해 Pet이라는 하나의 타입을 만들었다.
  • instanceof를 사용해서 타입가드를 해주었고 in, typeof 를 이용해서 타입가드를 해 줄수도 있다.
  • type interface class 연산자를 사용해서 새로운 타입을 선언 할 수 있다.
profile
frontend developer

0개의 댓글