타입스크립트의 클래스 - 클래스

/**
 * **타입스크립트의 클래스**
 */

const employee = {
    name: "박정수",
    age: 26,
    position: "developer",
    work(){
        console.log("일함")
    },
}

// 타입스크립트의 클래스는 실제 타입으로도 이용됨
class Employee{
    // 필드 
    name:string;
    age:number;
    position:string;

    // 생성자
    constructor(name:string, age:number, position:string){
        this.name = name;
        this.age = age;
        this.position = position;
    }

    // 메서드
    work(){
        console.log("일함")
    }
}

class ExecutiveOfficer extends Employee {
    // 필드
    officeNumber: number;

    // 생성자
    constructor(name:string, age:number, position:string, officeNumber:number){
        super(name, age, position);
        this.officeNumber = officeNumber;
    }
    
}

const employeeB = new Employee("박정수", 26, "개발자");
console.log(employeeB.work());

// 타입으로 이용되는 예
const employeeC :Employee = {
    name: "",
    age : 0,
    position: "",
    work() {},
}