# @types

Без сомнения, [DefinelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped) является одним из самых больших преимуществ TypeScript, и сообщество задокументировало 90% лучших библиотек JavaScript.

Это означает, что вы можете очень эффективно использовать эти библиотеки, не открывая документацию в отдельном окне (чтобы гарантировать правильность ввода).

## Использование `@types`

Вы можете установить `@types` через `npm`, как показано в следующем примере, для jquery можете сделать так:

```bash
npm install @types/jquery --save-dev
```

`@types` поддерживает глобальные и модульные определения типов.

### Глобальные `@types`

По умолчанию TypeScript автоматически включает любые определения, которые поддерживают глобальное использование. Например, для `jquery` вы можете начать использовать глобально `$` в своем проекте.

Однако для библиотек (например, `jquery`) я обычно рекомендую использовать модули.

### Модульные `@types`

После установки никакой специальной настройки не требуется, вы можете использовать ее как модуль:&#x20;

```typescript
import * as $ from 'jquery';

// Теперь вы можете использовать $ в этом модуле :)
```

## Контроль глобальных типов

Наличие типа который становится глобальным автоматически, может быть проблемой для некоторых команд. Вы можете явно указать только те типы, которые вам нужны, используя `tsconfig.json` в параметре `compilerOptions.types`, например:

```typescript
{
  "compilerOptions": {
    "types" : [
      "jquery"
    ]
  }
}
```

Как показано в примере выше, при настройке `compilerOptions.types: ['jquery']` разрешается только пакет `@types/types`, даже если человек устанавливает другой файл объявления, такой как `npm install` `@types/node`, его глобальные переменные ( Например, `process`) не попадут в ваш код, пока вы не добавите их в `tsconfig.json`.
