Машинописный текст 2.0 @Types/Express | Не могу найти модуль

Определения типа 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'.

person sparebytes    schedule 11.10.2016    source источник


Ответы (1)


Я все еще изучаю все эти вещи (будучи программистом .NET), но сегодня днем ​​​​у меня была похожая проблема, и эта конфигурация, похоже, работает:

{
    "compilerOptions": {
        "module": "system",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "moduleResolution": "node",
        "sourceMap": true,
        "typeRoots": [ "node_modules/@types" ]
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "node_modules/@types",
        "**/*.spec.ts"
    ]
}
person mattuu    schedule 13.11.2016
comment
Я думаю, что полезен только typeRoots, в моем случае мне нужно было подняться на один уровень typeRoots: [ ../node_modules/@types ] - person Ronan Quillevere; 25.11.2016