νλ‘ νΈμλ/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,
}