[TypeScript] implements

김방울·2023년 4월 18일
0

TypeScript

목록 보기
11/12
post-custom-banner

코딩애플님의 '빠르게 마스터하는 타입스크립트' 강의를 수강한 뒤 정리를 위해 작성한 글입니다.

class Animal{
  eye: number;
  body: number;

  constructor(eyeNum: number, bodyNum: number){
    this.eye = eyeNum,
    this.body = bodyNum
  }
}

Animal 클래스로부터 생성되는 object들은 eyebody 속성을 가지게 되는데,
이 class가 eyebody 속성을 가지고 있는지를 확인하고 싶다면interfaceimplements 키워드로 확인 할 수 있습니다.

interface Animal{
  eye: number;
  body: number;
}

class Bangul implements Animal{
  eye: number;
  body: number;
  tail: number;
  leg: number;
  state: string;

  constructor(paramState: string){
    this.eye = 2;
    this.body = 1;
    this.tail = 1;
    this.leg = 4;
    this.state = paramState;
  }
}

implements 우측에 interface 이름을 쓰면 이 클래스가 인터페이스에 있는 속성을 포함하고 있는지를 체크할 수 있습니다.

빠진 속성이 있다면 다음과 같이 에러로 알려줍니다.

주의할 점

interface Animal{
  eye: number;
  body: number;
}

class Bangul implements Animal{
  eye; // any 타입
  body; // any 타입

  constructor(a : any, b:any){
    this.eye = a;
    this.body = b;
  }
}

implements 키워드는 클래스가 인터페이스에 있는 속성을 포함하고 있는지를 체크할 뿐, 인터페이스에 있는 속성을 클래스에 할당해 주는 키워드가 아닙니다.

위와 같이 any타입을 파라미터로 받는 클래스 생성자를 만들어도 오류를 출력하지 않습니다.

참고자료

profile
코딩하는 고양이🐱 / UI Developer, Front-end Developer
post-custom-banner

0개의 댓글