Как я должен использовать @types с TypeScript 2

typescript tsd typescript-typings

38434 просмотра

4 ответа

3807 Репутация автора

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

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

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

Каковы новые лучшие практики? Поддерживает ли @types определенные версии?

Автор: gilamran Источник Размещён: 18.07.2016 07:10

Ответы (4)


3 плюса

21257 Репутация автора

Похоже , все они просто НПЕ пакеты, вы можете найти все поддерживаемые из них здесь .

TSC подберет любые типы в папке node_modules .

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

Вы можете прочитать больше об этом здесь .

Автор: toskv Размещён: 18.07.2016 07:25

58 плюса

61202 Репутация автора

Решение

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

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

npm install --save @types/lodash

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

Дополнительные баллы:

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

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

Автор: David Sherret Размещён: 18.07.2016 07:26

2 плюса

157142 Репутация автора

как мне конвертировать мой текущий проект для работы с @types

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

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

Автор: basarat Размещён: 19.07.2016 01:55

38 плюса

3474 Репутация автора

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

В текущей версии бета- версии Typescript 2.0 имеется ошибка , которая не загружает новые типы. Вручную с помощью cmd новый 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"помогли. Надеюсь, это сэкономит часы разработчика.

Автор: Artru Размещён: 24.08.2016 08:26
Вопросы из категории :
32x32