ν”„λ‘ νŠΈμ—”λ“œ/TypeScript

λ¦¬ν„°λŸ΄, μœ λ‹ˆμ˜¨/ꡐ차 νƒ€μž…

alswlfl 2023. 1. 3. 15:09

λ¦¬ν„°λŸ΄ νƒ€μž…(Literal Types)

  • const: λ³€ν•˜μ§€ μ•ŠλŠ” κ°’ μ„ μ–Έ ν•  λ•Œ
  • let: λ³€ν•  수 μžˆλŠ” κ°’ μ„ μ–Έ ν•  λ•Œ
  • λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ νƒ€μž…: μ •ν•΄μ§„ string 값을 κ°€μ§„ κ°’
const userName1="Bob"; //λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄ νƒ€μž…: μ •ν•΄μ§„ string값을 κ°€μ§„ κ°’
let userName2="Tom"; 
let userName3:string | number="Tom";  //κ°€μ§ˆ 수 μžˆλŠ” νƒ€μž… λͺ…μ‹œ ν•˜κΈ°

type Job="police"|"developer" |"teacher";

interface User{
  name:string;
  job:Job;
}

const user: User = {
  name:"Bob",
  job:"developer",
};

μœ λ‹ˆμ˜¨ νƒ€μž…(Union Types)

  • |(μ„Έλ‘œ 쀄)
interface HighSchoolStudent{
  name: number | string;
  grade: 1|2|3;
}
// Union types
interface Car{
  name:"car";
  color: string;
  start():void;
}

interface Mobile{
  name: "mobile";
  color: string;
  call():void;
}

function getGift(gift:Car | Mobile){
  console.log(gift.color);
  if(gift.name==="car"){. //car인지 확인 ν•œ ν›„, ν•΄λ‹Ή λ©”μ„œλ“œ 좜λ ₯
    gift.start();
  }else{
    gift.call();
  }
}

ꡐ차 νƒ€μž…(Intersection Types)

  • μ—¬λŸ¬ 개의 νƒ€μž…μ„ ν•˜λ‚˜λ‘œ ν•©μ³μ£ΌλŠ” μ—­ν• 
  • ν•„μš”ν•œ κΈ°λŠ₯을 λͺ¨λ‘ κ°€μ§„ ν•˜λ‚˜μ˜ νƒ€μž…μ΄ λ§Œλ“€μ–΄μ§
// Intersection Types
interface Car{
  name: string;
  start():void;
}

interface Toy{
  name: string;
  color: string;
  price: number;
}

const toyCar: Toy & Car = {
  name:"νƒ€μš”",
  start(){},
  color: "blue",
  price: 1000,
}