지난 시간에는 타입스크립트로 HTML 변경과 조작할 때 주의점에 대해 알아보았습니다. 오늘은 class 만들 때 타입을 지정하는 법을 알아보겠습니다.
class Person {
data: number = 0;
}
class Person {
name: string; // 미리 선언
constructor() {
this.name = "kim";
}
}
class Person {
name: string;
constructor(data: string) {
this.name = data;
}
}
prototype 함수 역시 타입 지정이 가능합니다.
class Person {
name: string;
constructor(data: string) {
this.name = data;
}
practice(a: string) {
console.log(a);
}
}
연습으로 Car 클래스를 만들어봅시다.
a. { model : '소나타', price : 3000 } 이렇게 생긴 object 를 복사해주는 class 를 만들어봅시다.
b. 복사된 object 자료들은 .tax() 라는 함수를 사용가능한데, 현재 object 에 저장된 price 의 10분의 1을 출력해주어야 합니다.
class Car {
model: string;
price: number;
constructor(x: string, y: number) {
(this.model = x), (this.price = y);
}
tax(): number {
return this.price * 0.1;
}
}
이번에는 class 인데, 파라미터가 잔뜩 들어가는 class Word 를 만들어봅시다.
a. object 만들 때 new Word() 를 사용합니다. 소괄호 안에 숫자 혹은 문자를 입력합니다.
b. 숫자는 전부 object 안의 num 속성 안에 array 형태로 저장됩니다.
c. 문자는 전부 object 안의 str 속성 안에 array 형태로 저장되는 class 를 만들어봅시다.
class Word {
num: number[];
str: string[];
constructor(...param: (string | number)[]) {
let letters: string[] = [];
let numbers: number[] = [];
param.forEach((i) => {
if (typeof i === "string") {
letters.push(i);
} else {
numbers.push(i);
}
});
this.num = numbers;
this.str = letters;
}
}
지금까지 class 를 만들 때 타입을 지정하는 방법을 알아보았습니다. 다음 시간에는 Object 에 타입을 지정하는데 사용할 수 있는 interface 에 대해 알아보겠습니다.