728x90
    
    
  ๋ฐ์ํ
    
    
    
  โช Literal types
const userName1 = "Bob";
let userName2 = "Tom";
const๋ ์์๋ก ๋ณํ์ง ์๋ ๊ฐ์ ์ ์ธํ ๋, let๋ ์ฌํ ๋น์ด ๊ฐ๋ฅํ ๊ฐ์ ์ ์ธํ ๋ ์ฌ์ฉํฉ๋๋ค.
์  ์ํ์์ VSC๊ฐ์ ์๋ํฐ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋ณด๋ฉด const๋ "Bob"์ด๋ผ๊ณ ์ ์ธ ๋ ๊ฐ์ด ๋จ๊ณ , let์ let userName2 : string์ด๋ผ๋ ํ์ ๊ฐ์ด ๋น๋๋ค. let์ ์ธ์ ๋ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
userName2 ์ ์ซ์๋ฅผ ๋ฃ๊ณ ์ถ๋ค๋ฉด?
let userName2 : string | number = "Tom";์ด๋ ๊ฒ ํ์ ์ ๋ ๋ค ๋ช ์ํด์ค๋๋ค.
type Job = "police" | "developer" | "teacher";
interface User {
  name : string;
  job : Job;
  grade: 1 | 2 | 3;
}
const user : User = {
 name : "Bob",
 job: "developer"
 }
โช Union types
์๋ณ ๊ฐ๋ฅํ ์ ๋์จ ํ์ ! gift๊ฐ car ์ผ์๋ mobile ์ผ ์๋ ์๋๋ฐ, gift์ ๊ฒฝ์ฐ ์๋ณ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ๊ฑธ ์ ๋์จํ์ ์ด๋ผ๊ณ ํ๋ค.
interface Car {
    name : "car";
    color: string:
    start() : void;
}
interface Mobile {
  name : "mobile";
  color: string;
  call() : void;
 }
 
 function getGift(gift: Car | Mobile){
   //Car์๋ง start()๊ฐ ์๊ธฐ๋๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ ์จ์ฃผ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋๋ค.
   if(gift.name === "car"){
     gift.start();
   }else{
     gift.call();
 }
 
 //
โช Intersection types
๊ต์ฐจํ์ ์ "and" ๊ฐ์ ๋๋์ ๋๋ค.
interface Car {
    name : string;
    start() : void;
}
interface Toy {
  name : string;
  color: string;
  price: number;
 }
 
const toyCar : Toy & Car = {
 name : "ํ์",
 start(){},
 color: "blue",
 
 //์์ ๊ฐ์ด ์์๋ง ์ ์ด๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. price๊ฐ ๋น ์ก๊ธฐ ๋๋ฌธ์ด๋ค. 
 //Car๋ price๋ฅผ ๊ฐ์ง๊ณ  ์์ง ์์ง๋ง ๊ต์ฐจ ํ์
์ ๋ชจ๋  ์์๊ฐ ํ๋๋ก ํฉ์ณ์ง๋ ๊ฑธ ๋ปํ๊ธฐ ๋๋ฌธ์ price๋ ๋ฃ์ด์ค์ผ ์ค๋ฅ๊ฐ ์ ์๊ธด๋ค
}
728x90
    
    
  '๊ฐ๋ฐ > Etc...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 2022๋  ์๋ฐ๊ธฐ ํ๊ณ ๋ก - ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ๋๋ค (0) | 2022.07.16 | 
|---|---|
| git branch ๋ง๋ค๊ธฐ / branch ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ (0) | 2022.06.23 | 
| babel.config.js vs .babelrc (0) | 2022.06.02 | 
| dependencies์ devDependencies ์ฐจ์ด (0) | 2022.03.30 | 
| [์๊ณ ๋ฆฌ์ฆ/JavaScript] ์์ด ํจ์ (0) | 2022.03.10 | 
