ํ๋ก ํธ์๋/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,
}