Car ํด๋์ค ๋ง๋ค๊ธฐ
- { model : '์๋ํ', price : 3000 } ์ด๋ ๊ฒ ์๊ธด object๋ฅผ ๋ณต์ฌํด์ฃผ๋ class๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ณต์ฌ๋ object ์๋ฃ๋ค์ .tax() ๋ผ๋ ํจ์๋ฅผ ์ฌ์ฉ๊ฐ๋ฅํ๋ฐ ํ์ฌ object์ ์ ์ฅ๋ price์ 10๋ถ์1์ ์ถ๋ ฅํด์ฃผ์ด์ผํ๋ค.
- model๊ณผ price ์์ฑ๊ณผ tax() ํจ์์ return ํ์ ์ง์ ํ์.
class Car {
model: string;
price: number;
constructor(model: string, price: number) {
this.model = model;
this.price = price;
}
tax() :number{
return this.price / 10;
}
}
const morning = new Car('morning', 3000);
console.log(morning.tax());
ํ๋ผ๋ฏธํฐ๊ฐ ์๋ฉ ๋ค์ด๊ฐ๋ class Word ๋ง๋ค๊ธฐ
- object ๋ง๋ค ๋ new Word() ์๊ดํธ ์์ ์ซ์ ํน์ ๋ฌธ์๋ฅผ ์ ๋ ฅํ๋ฉด
- ์ซ์๋ ์ ๋ถ object ์์ num ์์ฑ ์์ array ํํ๋ก ์ ์ฅ๋๊ณ
- ๋ฌธ์๋ ์ ๋ถ object ์์ str ์์ฑ ์์ array ํํ๋ก ์ ์ฅ๋๋ class๋ฅผ ๋ง๋ค์ด๋ณด์.
- class ๋ง๋ค ๋ ๋ฃ์ ์ ์๋ ์ซ์์ ๋ฌธ์ ๊ฐ์๋ ์ ํ ์๋ค.
class Word {
num;
str;
constructor(...param : (number | string)[]) {
let numParams :number[] = [];
let strParams :string[] = [];
param.forEach((i) => {
if(typeof i === 'number'){
numParams.push(i)
} else {
strParams.push(i)
}
})
this.num = numParams;
this.str = strParams;
}
}
let obj = new Word('kim', 3, 5, 'park');
console.log(obj.num); //[3,5]
console.log(obj.str); //['kim', 'park']
* ์์ ์ฝ๋์์ obj๋ฅผ const๋ก ์ ์ธํ๋ฉด obj.num ๋ฐ obj.str์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. obj๋ Word ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ค. ์ธ์คํด์ค๋ ๊ฐ์ฒด์ด๋ฏ๋ก, ๊ฐ์ฒด์ ์์ฑ์ ๋ณ๊ฒฝํ๊ณ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ const๋ก ์ ์ธ๋ ๋ณ์์ ์ฌํ ๋น์ ์๋ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
'๐ TypeScript > ๋ฌธ์ ํ๊ธฐ (์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ์คํฌ๋ฆฝํธ ์์ Part 1 (1~4) : ํจ์ ํ์ ์ง์ (0) | 2023.12.10 |
---|