Classes 101
클래스는 생성자를 이용해서 생성되는
JavaScript 오브젝트의 특별한 타입입니다.
클래스는 오브젝트와 아주 흡사하게 동작하며
Java/C#/Swift 같은 언어와 비슷한 상속 구조를 가집니다.
클래스 예시:
// 인스턴스는 new 키워드를 이용해서 생성할 수 있으며
메서드를 호출하고
오브젝트의 프로퍼티에 접근할 수 있습니다.
class Vendor {
name: string;
constructor(name: string) {
this.name = name;
}
greet() {
return "Hello, welcome to " + this.name;
}
}
// 오브젝트를 하위 클래스로 만들 수 있습니다.
이름뿐만 아니라 다양한 음식을 가진 카트:
const shop = new Vendor("Ye Olde Shop");
console.log(shop.greet());
// 새로운 FoodTruck을 생성하기 위하여
매개변수가 2개 필요하다고 작성했기 때문에
TypeScript는 매개변수를 하나만 사용할 경우, 에러를 표시합니다:
class FoodTruck extends Vendor {
cuisine: string;
constructor(name: string, cuisine: string) {
super(name);
this.cuisine = cuisine;
}
greet() {
return "Hi, welcome to food truck " + this.name + ". We serve " + this.cuisine + " food.";
}
}
// 매개변수 2개를 정확하게 전달하면
FoodTruck의 새로운 인스턴스를 생성할 수 있습니다:
const nameOnlyTruck = new FoodTruck("Salome's Adobo");
const truck = new FoodTruck("Dave's Doritos", "junk");
console.log(truck.greet());