[typescript] 타입 별칭과 인터페이스의 프로퍼티 초기화 개념 비교

이번 포스트에서는 TypeScript에서 타입 별칭과 인터페이스에서 프로퍼티 초기화의 동작 방식에 대해 비교해보겠습니다.

타입 별칭

타입 별칭은 새로운 타입을 만드는 것으로, 기존 타입에 대한 참조를 만들어냅니다.

type Person = {
  name: string;
  age: number;
};

위의 예시에서는 Person이라는 타입 별칭을 만들었습니다.

인터페이스

인터페이스는 객체의 구조를 정의합니다.

interface Person {
  name: string;
  age: number;
}

위의 예시에서는 Person이라는 인터페이스를 만들었습니다.

프로퍼티 초기화

타입 별칭과 인터페이스는 프로퍼티를 초기화하는 방식에서 차이를 보입니다.

타입 별칭에서의 프로퍼티 초기화

타입 별칭에서는 초기화된 프로퍼티를 사용할 수 없습니다.

type Person = {
  name: string = "John"; // Error: Type aliases can't be used to initialize values.
  age: number = 30; // Error: Type aliases can't be used to initialize values.
};

인터페이스에서의 프로퍼티 초기화

인터페이스에서는 프로퍼티를 초기화할 수 있습니다.

interface Person {
  name: string;
  age: number;
  greeting: string = "Hello!"; // Valid: Property 'greeting' can be initialized.
}

결론

타입 별칭은 새로운 타입을 만들 때 사용되며, 프로퍼티 초기화가 불가능합니다. 반면에 인터페이스는 객체의 구조를 정의하고 프로퍼티 초기화가 가능합니다.

프로젝트에서는 타입 별칭과 인터페이스를 적절히 사용하여 객체나 타입을 정의하고, 초기화하는 방식에 대해 고려해야 합니다.