본문 바로가기
타입스크립트(TS)

[TS] index.d.ts 알아보기

by goodchuck 2024. 6. 16.

목차

     

     

     index.d.ts는 무엇인가?

    'index.d.ts'는 TypeScript 에서 타입 정의 파일(Type Definition File)로, 주로  JavaScript 라이브러리나 모듈의 타입 정보를 정의하는데 사용된다. 이 파일은 TypeScript 코드가 해당 라이브러리나 모듈과 상호작용할 때 타입 안전성을 유지하도록 도와준다.

    'index.d.ts'파일의 주요 목적은 타입정보를 제공하여 코드 작성 중에 자동 완성 기능과 컴파일 타임 오류 검사를 가능하게 하는 것이다.


     주요 내용

     

    타입 선언

    • index.d.ts 파일은 변수, 함수, 클래스, 인터페이스 등의 타입을 선언한다.
    // Example: jQuery type definitions
    declare var $: (selector: string) => any;

     

    모듈 선언

    • 특정 모듈의 타입을 정의할 수 있다. 주로 외부 모듈을 TypeScript로 사용할 때 사용된다.
    // Example: Lodash module declaration
    declare module "lodash" {
        export function chunk<T>(array: T[], size: number): T[][];
    }

     

    전역 변수 선언

    • 프로젝트 전역에서 사용되는 변수나 객체를 정의 할 수 있다.
    // Example: Global variable declaration
    declare var myGlobalVar: string;

     

    네임스페이스

    • 네임스페이스를 사용하여 타입을 그룹화하고 스코프를 제어할 수 있다.
    declare namespace MyLibrary {
        function myFunction(param: string): void;
        interface MyInterface {
            property: number;
        }
    }

     

    기타 타입 선언

    • 다른 TypeScript 타입(유니언 타입, 제네릭, 튜플 등)도 정의할 수 있다.
    // Example: Union type declaration
    type StringOrNumber = string | number;
    
    // Example: Generic type declaration
    interface GenericInterface<T> {
        value: T;
    }

     사용 예시

     

    라이브러리 타입 정의

    • 예를 들어, jQuery 라이브러리를 사용한다고 가정하면, jQuery의 타입 정의 파일을 사용하여 TypeScript 코드에서  jQuery 객체의 타입 정보를 정의할 수 있다.
    // index.d.ts
    declare var $: (selector: string) => any;
    
    // main.ts
    const element = $('#myElement');

     

    모듈 타입 정의

    • 로컬 모듈이나 외부 모듈의 타입을 정의하여 사용한다.
    // index.d.ts
    declare module "myModule" {
        export function myFunction(): string;
    }
    
    // main.ts
    import { myFunction } from "myModule";
    const result = myFunction();

     

     마치며

    'index.d.ts' 파일은 TypeScript 프로젝트에서 매우 유용하며, 특히 대규모 프로젝트나 다양한 외부 라이브러리를 사용하는 프로젝트에서 타입 안전성을 유지하는 데 필수적이다.

    '타입스크립트(TS)' 카테고리의 다른 글

    [TS]@types  (1) 2024.11.02
    엠비언트 타입(Ambient Type)(.d.ts)  (0) 2024.11.02
    [TS] 커스텀 유틸리티 타입 활용하기  (0) 2024.07.28