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

[TS]@types

by goodchuck 2024. 11. 2.

목차

     

     

    @types란

    타입스크립트 프로젝트에서 외부 라이브러리의 타입 정보를 제공하기 위해 사용되는 타입 정의 패키지의 표준 네임스페이스.

    타입스크립트는 타입 정보를 포함하지 않는 일반 자바스크립트 라이브러리로도 사용할 수 있는데, 이 때 타입 정보를 @types 패키지로 별도로 제공하여 타입 안정성을 유지할 수 있게 해준다.

     

    @types의 역할과 사용 방식

     1. 타입 정의 제공

    • @types 패키지는 DefinitelyTyped라는 오픈 소스 프로젝트를 통해 관리되며, 타입스크립트 커뮤니티가 유지 보수한다.
    • @types 네임스페이스 하위에는 유명한 자바스크립트 라이브러리들의 타입 정의 파일들이 들어 있으며, 라이브러리명과 동일한 이름을 가진다.
    • 예를 들어, lodash라는 자바스크립트 라이브러리를 타입스크립트에서 사용할 때, @types/lodash 패키지를 통해 lodash의 타입 정보를 가져올 수 있다.

     2. 자동 타입 로딩

    • 타입스크립트 컴파일러(tsc)는 기본적으로 node_modules/@types 폴더를 타입 정의가 위치한 루트로 간주하여, 별도의 설정 없이도 자동으로 타입 정보를 로드한다.
    • 예를 들어, @types/jquery를 설치하면 프로젝트의 코드에서 jQuery를 사용할 때 타입 정보와 자동 완성 기능을 사용할 수 있다.

     3. 설치 및 사용 방법

    • @types 패키지는 개발 종속성으로 추가하며, 보통 npm이나 yarn을 통해 설치한다.
    npm install --save-dev @types/lodash
    
    • 설치 후, @types/lodash는 node_modules/@types/lodash/index.d.ts 파일에 위치하며, 타입스크립트가 이를 참조하여 lodash의 타입 정보를 제공한다.

     4. 타입 포함 여부 확인

    • 일부 라이브러리는 타입 정보를 자체적으로 포함하고 있어 @types 패키지를 설치할 필요가 없다.
    • 예를 들어, axios같은 라이브러리는 타입 정의를 자체 패키지에 포함하고 있다. 이런 경우 @types 패키지가 따로 존재하지 않는다.