在针对ES6运行npm install @types/express
和tsc -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'.
与上次相同的错误。
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'.
答案 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"
]
}