[TypeScript] implements와 extends

gu·2023년 8월 23일

TypeScript

목록 보기
11/13

💻 implements

interface에 들어있는 속성을 가지고 있는지 확인(체크용)

🖤 예시

// implements 예시
interface Person {
    name: string;
    age: number;
}
// 해당 class가 Person이라는 interface에 들어있는 속성인지 확인
// 빠진 속성이 있으면 에러로 잡아줌.
class Gyuri implements Person {
    name = "gyuri Kim";
    age = 25;
    nickName = "gyul"; // Person에없는 속성값도 가능
}

❗ implements는 타입지정문법이 아니다.

interface CarType {
  model : string,
  tax : (price :number) => number;
}

class Car implements CarType {
  model;   ///any 타입됨
  tax (a){   ///a 파라미터는 any 타입됨 
    return a * 0.1
  }
}

위예시코드처럼 implements는 class의 타입을 체크하는 용도이고 타입을 할당하지는 않는다.

💻 extends

클래스를 다른 클래스의 자식으로 만들기 위해 class 선언 또는 class 식에 사용하며 상속받고자 하는 부모 클래스를 명시하는 것. 즉, extends에 원하는 클래스를 명시하면 해당 클래스의 프로퍼티와 메서드를 따로 구현하지 않아도 인스턴스에서 자유롭게 사용 가능하다.

🖤 예시

// extends 예시
class Animal {
    name: string = "Boss";
    species: string = "dog";
    age: number = 7;
    nickName() {
        console.log("보탱구입니다.");
    }
}
class GyulsDog extends Animal {}
let dog = new GyulsDog(); // output : Boss
console.log(dog.name);
dog.nickName(); // output : 보탱구입니다.

✔ 비교

참고

TypeScript | extends / implements-벨로그
Extends와 Implements 차이-티스토리
코딩애플 타입스크립트

0개의 댓글