# @types 라이브러리란?

자바스크립트로 만들어진 써드 파티 라이브러리(jQuery, lodash, chart 등)를 타입스크립트에서 사용하려면 각 기능에 대한 타입이 정의되어 있어야 합니다. 예를 들면 아래와 같은 코드는 타입스크립트에서 제대로 동작하지 않습니다.

// app.ts
import $ from 'jquery';

$(document).ready();

그 이유는 제이쿼리 라이브러리의 내부 코드에 대한 타입이 정의되어 있지 않아 이 라이브러리를 들고 와서 사용할 때 타입스크립트 파일에서 타입 추론을 할 수 없기 때문입니다. 이런 경우에는 @types 라는 라이브러리를 설치하면 됩니다.

npm i -D @types/jquery

대중적으로 흔히 사용되는 자바스크립트 라이브러리는 대부분 @types라는 별칭으로 타입스크립트 추론이 가능한 보조 라이브러리를 제공합니다. 만약 이 라이브러리가 없는 경우에는 [스스로 선언하거나 다른 방법](아래 내용 작성 후 링크 제공)을 찾아보셔야 합니다 😃

# @types 라이브러리의 내부 구조

types 라이브러리는 일반적으로 index.d.ts 파일과 package.json 파일로 구성되어 있습니다.

└─ @types/jquery
   ├─ index.d.ts
   ├─ package.json

package.json 파일 안에는 types 속성이 정의되어 있습니다.

Keep in mind that automatic inclusion is only important if you’re using files with global declarations (as opposed to files declared as modules).

# @types 라이브러리가 없는 경우

TBD

# 참고 자료