> For the complete documentation index, see [llms.txt](https://artfulbits-se.gitbook.io/typescript/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://artfulbits-se.gitbook.io/typescript/type-system/types.md).

# @types

[Definitely Typed](https://github.com/DefinitelyTyped/DefinitelyTyped) безумовно, є однією з найбільших переваг TypeScript. Спільнота фактично пішла вперед і **documented** майже 90% найкращих проектів JavaScript.

Це означає, що ви можете використовувати ці проекти в дуже інтерактивний та дослідницький спосіб, не потрібно відкривати документи в окремому вікні та стежити за тим, щоб ви не зробили помилки.

## Using `@types`

Встановлення досить просте, оскільки воно працює поверх `npm`. Отже, як приклад, ви можете встановити визначення типу для`jquery` просто так:

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

`@types` підтримує визначення типів *global* i *module*.

### Global `@types`

За замовчуванням усі визначення, які підтримують глобальне споживання, включаються автоматично. наприклад для`jquery` ви повинні мати можливість просто почати використовувати `$` *globally* у своєму проекті.

Однак для *libraries* (наприклад `jquery`) я зазвичай рекомендую використовувати *modules*:

### Module `@types`

Після інсталяції не потрібна спеціальна конфігурація. Ви просто використовуєте його як модуль, наприклад:

```ts
import * as $ from "jquery";

// Use $ at will in this module :)
```

## Controlling Globals

Як видно, наявність визначення, яке автоматично допускає глобальний витік, може бути проблемою для деяких команд. Тож ви можете вибрати *explicitly* лише введення типів, які мають сенс за допомогою `tsconfig.json` `compilerOptions.types` наприклад:

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

Вище показано зразок, де дозволено використовувати лише `jquery`. Навіть якщо особа встановить інше визначення, наприклад `npm install @types/node` його глобальні значення (наприклад,[`process`](https://nodejs.org/api/process.html))не просочуватимуться у ваш код, доки ви не додасте їх до опції типів `tsconfig.json`.
