타입스크립트의 클래스

woodstock·2024년 1월 29일
0
post-thumbnail

타입스크립트에서는 클래스의 필드를 선언할 때 타입 주석으로 타입을 함께 정의해주어야 한다.

그렇지 않으면 함수 매개변수와 동일하게 암시적 any 타입으로 추론되는데, 엄격한 타입 검사 모드(strict 옵션이 true로 설정되어 있을 경우)일 때에는 오류가 발생하게 된다.


추가로 생성자에서 각 필드의 값을 초기화하지 않을 경우 초기값도 함께 명시해주어야 한다.


만약 다음과 같이 생성자 함수에서 필드의 값들을 잘 초기화 해준다면 필드 선언시의 초기값은 생략해도 된다.

class Employee {
  // 필드
  name: string;
  hp: number;
  position: string;

  constructor(name: string, hp: number, position: string) {
    this.name = name;
    this.hp = hp;
    this.position = position;
  }

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

const employeeB = new Employee("woodstock", 100, "개발자");
console.log(employeeB);


클래스는 타입이다.

타입스크립트의 클래스는 타입으로도 사용할 수 있다. 클래스를 타입으로 사용하면 해당 클래스가 생성하는 객체의 타입과 동일한 타입이 된다.

const employeeC: Employee = {
  name: "",
  hp: 0,
  position: "",
  work() {},
};

변수 empoyeeC의 타입을 Employee 클래스로 정의했다. 따라서 이 변수는 name, age, position 프로퍼티와 work 메서드를 갖는 객체 타입으로 정의된다.

상속

타입스크립트에서 클래스의 상속을 이용할 때, 파생 클래스(확장하는 클래스)에서 생성자를 정의헀다면 반드시 super 메서드를 호출해 슈퍼 클래스(확장되는 클래스)의 생성자를 호출해야 하며, 호출 위치는 생성자의 최상단이어야 한다.

profile
해내는 사람

0개의 댓글