constructor 외의 공간을 필드값이라고 하는데, 타입스크립트에서 constructor()는 필드값에 어쩌구가 미리 있어야 this.어쩌구 가능
class Person {
data = 0;
==> 필드값, constructor와 똑같은 역할✍💀
name :string;
constructor(name :string){
this.name=name
}
함수(a :string){
console.log('안녕'+a);
}
}
//prototype
//Person.prototype.함수 = function(){} 이거랑
//위에다가 함수()정의한거랑 똑같음.
let 사람 = new Person('kim');
사람.함수('크롱');
console.log(사람.data) //0
Car 클래스를 만들고 싶습니다.
1. { model : '소나타', price : 3000 } 이렇게 생긴 object를 복사해주는 class를 만들어보십시오.
2. 그리고 복사된 object 자료들은 .tax() 라는 함수를 사용가능한데 현재 object에 저장된 price의 10분의1을 출력해주어야합니다.
3. model과 price 속성의 타입지정도 알아서 잘 해보십시오. tax() 함수의 return 타입도요.
class Car {
model: string;
price: number;
constructor(model, price) {
this.model = model;
this.price = price;
}
tax(): number {
return this.price / 10;
}
}
let car1 = new Car('소나타', 3000);
class인데 파라미터가 잔뜩 들어가는 class Word를 만들어봅시다.
...
사용💘
==> 예시
class Word {
a;
constructor(...a) {
this.a = a;
}
}
let obj = new Word('kim', 20);
console.log(obj);
배열이되엇슴니다.
class Word {
nums;
str;
constructor(...param: (number | string)[]) {
let nums: number[] = []; //배열의 원소는 숫자뿐
let str: string[] = [];
param.forEach((a) => {
if (typeof a == 'string') {
str.push(a);
} else {
nums.push(a);
}
});
this.nums = nums;
this.str = str;
}
}
let obj = new Word('kim', 3, 4, 'hi');
console.log(obj.nums); // [3, 4]
console.log(obj.str); //['kim','hi']