tech.junha.kr

노트/TypeScript

타입과 인터페이스 차이

작성

type TState = {
  name: string;
  capital: string
}

interface IState = {
  name: string;
  capital: string;
}
  • 인덱스 시그니처
    • 객체가 동적으로 결정되는 키-값 쌍을 가질 때 매우 유용합니다.
    • 이를 통해 다양한 형태의 객체를 타입 안전하게 다룰 수 있으며, 코드의 유연성을 높일 수 있습니다.
type TDict = { [key:string]: string}
interface IDict = {
  [key: string] :string;
}
interface User {
    name: string;
    age: number;
    [key: string]: string | number;
}

let user: User = {
    name: "Alice",
    age: 30,
    email: "alice@example.com",
    phone: "123-456-7890"
};

console.log(user.name); // "Alice"
console.log(user.email); // "alice@example.com"
  • js에서 함수는 호출 가능한 객체다

타입은: 유니온 타입과 교차 타입을 정의할 수 있어 간단하고 유연함. 인터페이스는 객체 구조를 정의할 때 주로 사용되며, 선언 병합을 통하 보강 기법을 통해 필드를 쉽게 추가할 수 있음.

새로운 필드가 추가/제거가 농후하게 일어나는 프로젝트는 인터페이스 타입에 선언 병합이 발생하면 안되는 타입이 strict하게 유지되는 프로젝트는 타입