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 |