Импорт node и выражение с типом в TypeScript
Я пытаюсь настроить приложение TypeScript express/node в коде Visual Studio в соответствии с руководством Microsoft, но вместо этого изменить его на использование TypeScript когда дело доходит до установки определений типов с помощью typings
, мне, кажется, приходится устанавливать больше пакетов, чем руководство.
Я выполняю следующую пару команд:
typings install node --ambient --save
typings install express --ambient --save
Однако попытка создания только с этими пакетами приводит к следующей ошибке:
error TS2307: Cannot find module 'serve-static'.
Для следующих типов:
- мим
- экспресс-обслуживания-статическое-ядро
- служат статические
Я могу решить эту проблему, установив необходимые тиски, но кажется, что что-то типизация должна делать сама по себе.
Я хотел проверить, не упустил ли я фундаментальный шаг для автоматического зависания зависимостей или от усталости руководства?
В случае, если это уместно, мой tsconfig.json:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true,
"outDir": "bin",
"sourceRoot": "src"
},
"exclude": [
"node_modules",
"typings/browser.d.ts",
"typings/browser"
]
}
Мой tsc - версия 1.8.7, и у меня TypeScript установлен глобально.
Ответы
Ответ 1
Начиная с выпуска TypeScript 2.0 в прошлом месяце рекомендуемым инструментом для установки тинейпов является наш верный старый друг npm
вместо typings
или tsd
.
npm install @types/node --save
С npm больше не нужно беспокоиться о "глобальных" или "окружающих" установках.
Вам также не нужно беспокоиться о добавлении тегов <reference>
в начало ваших исходных файлов; просто отбросьте следующее свойство в compilerOptions
в tsconfig.json
, а компилятор TypeScript автоматически найдет установочные номера npm, которые вы установили:
"typeRoots": [ "node_modules/@types" ]
Вот сообщение в блоге, в котором объясняется изменение более подробно: https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/
Ответ 2
Обучаемый урок теперь обновлен и включает следующие команды:
typings install node --ambient
typings install express serve-static express-serve-static-core --ambient
Обратитесь к @cdbajorin comment за информацией о том, почему зависимости не загружаются автоматически.
Ответ 3
чтобы сохранить всех головную боль, волшебная команда, чтобы получить типизацию для node, теперь:
typings install node --source env --global --save