Определения типа Express для Typescript 2.0 приводят к непредвиденным ошибкам при выполнении после запуска npm install @types/express
и tsc -t ES6
для ES6. Код отлично компилируется без флага ES6. Кто-нибудь может объяснить? У меня также есть проблемы с определениями других типов, таких как ssh2
.
Вот шаги для воспроизведения:
> mkdir humbug
> cd humbug
> touch blank.ts
> tsc blank.ts
> tsc -t ES6 .\blank.ts
Пока все в порядке.
> npm init .
...
> npm install @types/express
Теперь все идет плохо
> tsc blank.ts
> tsc -t ES6 .\blank.ts
node_modules/@types/express/index.d.ts(16,30): error TS2307: Cannot find module 'serve-static'.
node_modules/@types/serve-static/index.d.ts(16,20): error TS2307: Cannot find module 'mime'.
Хорошо, я лучше удостоверюсь, что типы для serve-static и mime установлены.
> npm install @types/serve-static @types/mime
[email protected] C:\Users\me\Desktop\humbug
`-- (empty)
npm WARN [email protected] No description
npm WARN [email protected] No repository field.
npm ERR! code 1
Странно, у меня ERR! код, но типы были загружены, попробуем скомпилировать снова
> tsc blank.ts
> tsc -t ES6 .\blank.ts
node_modules/@types/express/index.d.ts(16,30): error TS2307: Cannot find module 'serve-static'.
node_modules/@types/serve-static/index.d.ts(16,20): error TS2307: Cannot find module 'mime'.
Та же ошибка, что и в прошлый раз.
Моя среда:
- Windows 10
- Узел v6.6.0
- ТСЦ 2.0.3
Другие определения с той же проблемой:
node_modules/@types/cors/index.d.ts(9,26): error TS2307: Cannot find module 'express'.
node_modules/@types/multer/index.d.ts(6,26): error TS2307: Cannot find module 'express'.
node_modules/@types/ssh2/index.d.ts(26,8): error TS2307: Cannot find module 'ssh2-streams'.