打字稿2.0 @ Types / Express |找不到模块

时间:2016-10-11 18:32:02

标签: express typescript-typings tsc typescript2.0

在针对ES6运行npm install @types/expresstsc -t ES6后执行时,Typescript 2.0的Express类型定义会导致意外错误。代码在没有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
humbug@1.0.0 C:\Users\me\Desktop\humbug
`-- (empty)

npm WARN humbug@1.0.0 No description
npm WARN humbug@1.0.0 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
  • Node v6.6.0
  • TSC 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'.

1 个答案:

答案 0 :(得分: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"
    ]
}