[typescript] 타입 별칭과 인터페이스를 사용하여 모듈 타입 정의하기

TypeScript는 JavaScript에 타입을 추가하는 강력한 도구이며, 모듈 시스템의 도입으로 코드를 모듈화하여 재사용할 수 있게 되었습니다. 모듈 타입을 정의함으로써 외부 라이브러리와 모듈 간의 상호작용을 더욱 안정적으로 만들 수 있습니다.

타입 별칭(Type Aliases)과 인터페이스(Interfaces)

TypeScript에서 타입 별칭은 새로운 타입 이름을 정의할 수 있는 기능입니다. 이를 통해 특정 타입에 대해 이름을 지어 사용할 수 있습니다.

예시:

type User = {
  id: number;
  username: string;
};

인터페이스는 객체의 구조를 정의하기 위한 TypeScript의 핵심적인 개념입니다. 위의 예시를 인터페이스로 표현하면 다음과 같습니다.

interface User {
  id: number;
  username: string;
}

모듈 타입 정의하기

모듈에서 제공되는 함수, 클래스 또는 다른 타입에 대한 타입을 정의하기 위해 위에서 언급한 타입 별칭과 인터페이스를 사용할 수 있습니다.

예시:

// types.ts
export type User = {
  id: number;
  username: string;
};

export interface Product {
  id: number;
  name: string;
}

위와 같이 types.ts 파일에 UserProduct 타입을 정의하고, 이를 다른 파일에서 import하여 사용할 수 있습니다.

// main.ts
import { User, Product } from './types';

const user: User = {
  id: 1,
  username: 'john_doe',
};

const product: Product = {
  id: 123,
  name: 'Example Product',
};

이처럼 모듈 간의 타입 관계를 정의함으로써 타입 안정성을 확보할 수 있습니다.

결론

TypeScript를 사용하여 모듈을 정의할 때, 타입을 명확히 정의함으로써 코드의 안전성을 높일 수 있습니다. 타입 별칭과 인터페이스를 적절히 활용하여 모듈 간의 상호작용을 관리하면 유지보수가 용이하고 안정적인 코드를 작성할 수 있습니다.