tech.junha.kr

노트/TypeScript

type vs interface 확장성 차이

작성

// Interface는 확장이 가능합니다 (extends 사용 가능)

interface Person {
  name: string;
}

interface Employee extends Person {
  employeeId: number;
}

const employee: Employee = {
  name: "Alice",
  employeeId: 1234,
};
// Type은 원시 타입이나 유니온 타입으로도 선언 가능하지만 확장이 불가능합니다 (extends 불가)

type Color = "red" | "green" | "blue";
type ID = number | string;

type Vehicle = {
  brand: string;
};

// 타입을 확장하려면 새롭게 정의해야 합니다 
type Car = Vehicle & {
  wheels: number;
};

const myCar: Car = {
  brand: "Toyota",
  wheels: 4,
};