2016-08-14 2 views
7

Когда дело доходит до использования Typcript, нам нужно подумать о том, как разрешать файлы определения типов (* .d.ts).Какое наилучшее решение для системы управления определением типов (например, tsd) для TypScript?

До тех пор, как я знаю, существует несколько систем для управления системой определения машинописных текстов, как показано ниже.

  • ТСД
  • типизации
  • @types

Я думаю ТСД является старейшим и происхождения. Но почему typings должен был родиться? Я думаю, что создание файла определения для типизации немного сложнее.

А что такое @types на самом деле?

Тогда, что является лучшим решением вокруг этого?

+0

Я просто вручную управляю своими типами локально; работает чудо. Я иногда копирую их от definatelyTyped, если они имеют достаточно хорошее качество и актуальность, что не так часто. – AlexG

ответ

8

История, связанная с экосистемой управления типизациями вокруг TypeScript, очень велика.

Сначала был (до сих пор) репозиторий монолитов под названием DefinitelyTyped, который использовался в качестве концентратора для всех разработчиков, которые хотели внести свои типизации для разных библиотек.

Из-за этого хранилища диспетчер типографий называется tsd, который непосредственно берет метки из этого репозитория и сохраняет их локально в вашем проекте.

Между тем DT repo превысил возможности масштабирования и had to be restructured. Дискуссия продолжилась в том, как должен выглядеть файл d.ts., поэтому в какой-то момент возникла необходимость в еще одном способе включения типов в ваш проект. Другая проблема заключалась в версировании библиотек и самого компилятора TypeScript.

Тогда в одной точке Blake Embrey создан новый менеджер типизации называется typings, который имел поддержку DefinitelyTyped и новый предложенный способ структурирования d.ts. Новая структура позволила использовать два типа модулей - глобальные (большинство определенных) и модули, которые должны быть инкапсулированы.

Позже TypeScript 2.0 Beta был анонсирован Microsoft. Команда, стоящая за TypeScript, осознала необходимость в другом способе обработки файлов ввода. То, что они сделали, было @types npm scope, которое they announced will be the new way of handling typings. На данный момент @types работает только с TypeScript 2.0.

Файлы деклараций (файлы .d.ts) являются основополагающей частью использования существующих библиотек JavaScript в TypeScript, но получение их всегда было местом, где мы знаем, что есть возможности для улучшения. Когда мы приближаемся к TypeScript 2.0, мы очень рады продемонстрировать пик нашего плана, чтобы упростить ситуацию. Получение объявлений типа TypeScript 2.0 не потребует инструментов, кроме npm.

Так к ответу на ваш вопрос:

При использовании машинописи ниже использование v2.0 typings, но если вы используете 2.0 use @types

+4

Спасибо @drinchev, выглядит точным - что-то заслуживающее внимания - это то, что Typings было и есть упражнение, чтобы показать, как зависимости можно управлять с помощью TypeScript (ранее это было невозможно с DefinitelyTyped + TSD, а в качестве автора модуля это было неприемлемо). TypeScript теперь понимает это и работал, чтобы помочь включить предложение в ядро ​​для 2.0. – blakeembrey

Смежные вопросы