๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋ก ํŠธ์—”๋“œ/TypeScript

๋ฆฌํ„ฐ๋Ÿด, ์œ ๋‹ˆ์˜จ/๊ต์ฐจ ํƒ€์ž…

by alswlfl 2023. 1. 3.

๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž…(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,
}

'ํ”„๋ก ํŠธ์—”๋“œ > TypeScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ œ๋„ค๋ฆญ  (0) 2023.01.03
ํด๋ž˜์Šค  (0) 2023.01.03
ํ•จ์ˆ˜  (0) 2023.01.03
์ธํ„ฐํŽ˜์ด์Šค  (0) 2023.01.03
TypeScript ์‚ฌ์šฉ ์ด์œ ์™€ ๊ธฐ๋ณธ ํƒ€์ž…  (0) 2023.01.03