ts - interface

박제영·2022년 7월 21일
0

ts

목록 보기
1/13

interface 는 class처럼 청사진으로 사용하는게 아니라 사용자 정의 타입으로 사용함
클래스가 특정 메소드, 변수를 가지도록 강제함
그리고 인스턴스화 불가

interface Orc {
  strength: number;
  HP: number;
  def: number;

  getDamage(damage: number): void;
}

let monster: Orc = {
  strength: 10,
  def: 10,
  HP: 100,
  getDamage(damage: number) {
    this.HP -= damage - this.def;
  },
};

console.log(monster);

monster 변수를 Orc라는 객체로 정의
그러니까 타입 체킹 할때 쓴다는거 같음

class OrcLoad implements Orc {
  strength;
  def;
  HP;
  constructor(strength: number, def: number, HP: number) {
    this.strength = strength;
    this.def = def;
    this.HP = HP;
  }

  getDamage(damage: number) {}
}

이런식으로 확장이 가능한다 abstract는 세부 구현이나 시그니쳐만 있어도 되면 반면

interface는 세부구현 없이 시그니쳐만 있어야 한다는게 다른 점임

profile
개발 도중 만난 문제 해결을 서술하거나 기록 및 개인의 생각을 정리한 블로그

0개의 댓글