티스토리 뷰

👒 인터페이스를 구현하는 클래스

타입스크립트의 인터페이스는 클래스의 설계도 역할을 할 수 있다.

인터페이스를 이용해 클래스에 어떤 필드들이 존재하고, 어떤 메소드가 존재하는 지 정의할 수 있다.

interface CharacterInterface{
    name: string;
    moveSpeed: number;
    move(): void;
}

// CharacterInterface가 정의한 타입의 객체를 클래스가 생성하도록 하기
// implements(구현하다) 
class Character implements CharacterInterface{
    // 인터페이스는 public 필드만 정의할 수 있음 
    // -> private, protected 설정 불가능
    // private하거나 protected한 필드가 필요한 경우에는 추가로 정의
    constructor(
        public name: string, 
        public moveSpeed: number, 
        private extra: string
        ){ // 매개변수에 접근 제어자 설정으로 생략 가능}

    move():void{
        console.log(`${this.moveSpeed}만큼 이동`)
    }
}

인터페이스를 클래스에서 implements 키워드로 구현하도록 한다면 이 클래스가 생성하는 객체는 모두 해당 인터페이스 타입을 모두 만족하도록 클래스를 구현해야 한다.

 

인터페이스는 public한 필드만 정의할 수 있기 때문에 매개변수에 private나 protected 설정은 불가능하다. 하지만 추가로 private하거나 protected한 필드가 필요한 경우에는 추가로 정의가 가능하다.

 

 

보통 클래스를 만들 때 인터페이스를 설계도로 만드는 경우는 드물지만 라이브러리를 구현하거나 정교하고 복잡한 프로그래밍을 하는 경우도 종종 있다.

 

 

 

 


🔗 타입스크립트 강의

 

한 입 크기로 잘라먹는 타입스크립트(TypeScript) - 인프런 | 강의

문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻‍♀️로 만들어드립니다., 프론트엔드의 피할 수

www.inflearn.com

 

728x90