Подтвердить что ты не робот

Как использовать @types с помощью TypeScript 2

До сих пор мы привыкли к tsd или (лучшая версия) типизация

Но теперь, когда TypeScript 2 предлагает новую функцию @types, как мне преобразовать мой текущий проект в работу с @types?

У меня есть tsd.json(typings.json - это некоторые случаи) со всеми зависимостями, каковы шаги для перехода на TypeScript 2? Каковы новые передовые методы? Поддерживает ли @types определенные версии?

Спасибо!

4b9b3361

Ответ 1

Это очень просто. Просто установите определения, которые вам нужны через npm.

Например, если вам нужен lodash, вы можете сделать:

npm install --save @types/lodash

После установки вы можете сразу использовать его в своем проекте. Typescript будет разрешать типизацию установленного пакета @types из папки node_modules/@по умолчанию. Нет необходимости в файле tsd.json или typings.json.

Дополнительные пункты:

  • Основная и младшая версия пакета @types в npm должна соответствовать версии пакета.
  • Здесь вы можете искать типы: http://microsoft.github.io/TypeSearch/
  • Читайте о typeRoots и types здесь. В частности, обратите внимание на эти два момента:
    • Если в tsconfig.json указано typeRoots, для корней типа будут использоваться только указанные папки. Это исключает. /npm _modules/@types/, если вы не укажете его.
    • Если types указан в tsconfig.json, тогда будут включены только указанные пакеты.

Подробнее в сообщении блога здесь.

Ответ 2

Typescript 2.0 избавляется от предыдущей системы Типизация.
Теперь Typescript 2.0 должен по умолчанию просматривать ./node_modules/@types и получать типы, которые вы установили в качестве отдельных модулей node, например. npm install --save @types/react (как упоминалось @David Sherret)

В текущей версии Typescript 2.0 beta​​strong > есть ошибка, которая не загружает новые типы. Вручную с помощью cmd new tsc компилирует файлы, но в VS 2015 нет поддержки IntelliSense, и никаких ошибок не обнаружено, пока файл .ts находится в режиме редактирования.

Чтобы решить эту проблему, измените tsconfig.json на аналогичные настройки:

{
  "compilerOptions": {
     // ... other config rows 
   "typeRoots": [ "node_modules/@types/" ],
    "types": [ "jquery", "react", "react-dom", /*... your other types */ ],
  }
}

Для меня ручная декларация "types" помогла решить эту проблему, для других ребят "typeRoots" помогло. Надеюсь, это сэкономит время разработки.

Ответ 3

Похоже, что они всего лишь пакеты npm, вы можете найти все поддерживаемые здесь.

tsc отобразит все типы в папке node_modules.

Вы можете перемещать зависимости, которые у вас есть в typings.json, в package.json (при условии, что вы тоже изменили имена).

Вы можете узнать больше об этом здесь.

Ответ 4

как мне преобразовать мой текущий проект в работу с @types

Я определенно рекомендую держаться немного дольше.

например. проблемы все еще исправляются... всего 4 часа назад: https://github.com/Microsoft/TypeScript/issues/9725#issuecomment-233469422