以下代码......
app.get('/basic', (req, res) => {
res.send({message: 'hello'})
})
在WebStorm 2016.2.4中生成消息Argument types do not match parameters
我的package.json
中的相关依赖项部分是:
"dependencies": {
"@types/body-parser": "0.0.32",
"@types/express": "^4.0.33",
"@types/lodash": "^4.14.34",
"@types/node": "^6.0.38",
"body-parser": "1.15.1",
"dotenv": "2.0.0",
"express": "4.13.4",
"lodash": "^4.13.1",
"typescript": "^2.0.3"
},
当我删除@types/express
包时,WebStorm不再提供错误消息,但TypeScript编译器会发出error TS2307: Cannot find module 'express'
消息。
有没有办法以不同的方式配置它,或者WebStorm只是在追赶TypeScript 2?
答案 0 :(得分:2)
有同样的问题。问题是我通过typings install dt~express
安装了dt / express的输入,当我在express / index.ts文件中查看.get()的类型定义时,出现了不匹配的情况:
get: {(name: string): any;} & IRouterMatcher<this>;
这不是我想要的,我改为使用typings install express
从npm / express获取类型定义。
我的typings.json
文件如下所示:
{
"dependencies": {
"express": "registry:npm/express#4.14.0+20160925001530"
},
...
}
答案 1 :(得分:0)
编辑:这在Webstorm v2016.3.1中解决了
在此之前,我发现的部分解决方案是以下列方式添加类型声明:
import * as express from 'express'
const app : express.Application | express.Router = express()