TypeScript типизация в пакетах npm @types org

Я заметил там организацию npm @types, которая содержит набранные пакеты, но не может найти на ней никакой документации. Как они предназначены для использования?

Используется ли это для инструмента typings? Если да, то как их установить? Например, существует @types/openlayers, но typings search npm:openlayers ничего не возвращает.

Используется ли он отдельно от инструмента тиреобразования? Например. установлен непосредственно с помощью npm?

Ответ 1

Как и в случае TypeScript 2.0, типизация больше не требуется. Организация npm - это организация для настройки команды разработчиков. Я полагаю, что Microsoft настроила организацию @types в npm и добавила команду разработчиков TypeScript в организацию. Пакеты под организацией @types публикуются автоматически из DefinitelyTyped с использованием инструмента типа-издателя в соответствии с docs.

Кроме того, есть еще один способ добавить types к вашим пакетам:

В вашем пакете. json

Если ваш пакет имеет основной файл .js, вам также необходимо указать основной файл декларации в вашем файле package.json. Задайте свойство types, чтобы указать ваш связанный файл декларации. Например:

{
    "name": "awesome",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts"
}

Обратите внимание, что поле "typings" является синонимом "types" и может также использоваться.

Также обратите внимание, что если ваш основной файл декларации имеет имя index.d.ts и живет в корневом каталоге (рядом с index.js), вам не нужно отмечать свойство "types", хотя это желательно сделать.

Что касается типов поиска

По большей части, пакеты декларации типов всегда должны иметь то же имя, что и имя пакета в npm, но с префиксом @types/, но если вам нужно, вы можете проверить https://aka.ms/types, чтобы найти пакет для вашей любимой библиотеки.

От - http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

Но когда я сделал npm search @types/openlayers, я не получил никаких результатов. Но поиск из веб-интерфейса действительно возвращал мне результаты. Поэтому я полагаю, что npm search не выполняет поиск между организациями.

Ответ 2

Объявление в блоге TypeScript отвечает на это: Будущее файлов декларации

Сводка:

Организация @types npm предназначена для получения определений типов с помощью npm. Использование этих определений типов - это функция, входящая в TypeScript 2.0.

Это заменит текущие проекты/инструменты, такие как typings и tsd, хотя они будут по-прежнему поддерживаться в течение некоторого времени.

Ответ 3

Это будет функция, которая развернута в Typescript 2.0. Это обеспечивает поддержку типов для модулей/библиотек UMD и их соответствующих определений.

Смотрите (Встроенная поддержка определений модулей UMD), чтобы лучше понять проблемы, возникающие в настоящее время с типизацией окружающего текста.