Interface

旅人·2023년 2월 22일

property를 사용할 때는 interface 사용


interface를 통해 property를 강제


속성 앞에 readonly를 추가하면 수정이 불가능


property의 값을 제한하고 싶을 때


Interface로 함수 정의하기

interface Add {
  (num1: number, num2: number): number;
}

const add: Add = (x, y) => {
  return x + y;
};

interface IsAdult {
  (age: number): boolean;
}

const abc: IsAdult = (age) => {
  return age > 19;
};

Interface로 Class 정의하기

// implements

interface Car {
  color: string;
  wheels: number;
  start(): void;
}

class Bmw implements Car {
  color;
  wheels = 4;
  constructor(color: string) {
    this.color = color;
  }
  start() {
    console.log("go!!!");
  }
}

const bmw = new Bmw("black");

interface Benz extends Car {
  door: number;
  stop(): void;
}

const benz: Benz = {
  color: "blue",
  wheels: 4,
  door: 5,
  start() {
    console.log("go now!!!");
  },
  stop() {
    console.log("stop");
  },
};

// 다중 상속
interface Toy {
  name: string;
}

interface ToyCar extends Car, Toy {
  price: number;
}
profile
一期一会

0개의 댓글