express app.get 函数给出 "Argument types do not match parameters" 错误
express app.get function gives "Argument types do not match parameters" error
下面的代码...
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 只是在 catch-up 使用 TypeScript 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"
},
...
}
编辑:这在 Webstorm v2016.3.1
中自行解决
在此之前,我发现的部分解决方案是以下列方式添加类型声明:
import * as express from 'express'
const app : express.Application | express.Router = express()
TypeScript 无法正确找到内部对象的声明 -
而不是完整地导入 express 并访问其子对象,例如:
import * as express from "express";
...
public app: express.Application;
做
import { NextFunction, Application, Router } from "express";
...
public app: Application;
下面的代码...
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 只是在 catch-up 使用 TypeScript 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"
},
...
}
编辑:这在 Webstorm v2016.3.1
中自行解决在此之前,我发现的部分解决方案是以下列方式添加类型声明:
import * as express from 'express'
const app : express.Application | express.Router = express()
TypeScript 无法正确找到内部对象的声明 - 而不是完整地导入 express 并访问其子对象,例如:
import * as express from "express";
...
public app: express.Application;
做
import { NextFunction, Application, Router } from "express";
...
public app: Application;