코딩애플님의 '빠르게 마스터하는 타입스크립트' 강의를 수강한 뒤 정리를 위해 작성한 글입니다.
class Animal{
eye: number;
body: number;
constructor(eyeNum: number, bodyNum: number){
this.eye = eyeNum,
this.body = bodyNum
}
}
Animal
클래스로부터 생성되는 object들은 eye
외 body
속성을 가지게 되는데,
이 class가 eye
와 body
속성을 가지고 있는지를 확인하고 싶다면interface
와 implements
키워드로 확인 할 수 있습니다.
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타입을 파라미터로 받는 클래스 생성자를 만들어도 오류를 출력하지 않습니다.