@types/express
和@types/express-serve-static-core
包,但遇到了问题。Definitions by:
中的index.d.ts
)所以他们可以回应。代码:
import * as express from "express";
import { Request, Response } from "express";
import * as bodyParser from "body-parser";
import * as api from "./routes/api";
namespace my_api {
let app = express();
let port: number = process.env.port || 3000;
app.use(bodyParser.json());
app.use('/api', api);
app.get('/', (req: Request, res: Response) => {
res.send("Hello world");
});
app.listen(port, () => console.log(`Express app listening on port ${port}`);
}
构建时:
ERROR in /path/to/server.ts (25,11): Argument of type '"/api"' is not assignable to parameter of type 'RequestHandlerParams'.
嗨@natejgardner
我也遇到了这个错误,花了太多时间来解决这个问题。 我尝试通过编写自己的 d.ts 来修复类型定义。 文件,但我失败了。 然后我遇到了这个expressjs:typescript: Argument of type 'typeof
我看到 TypeScript 类型和 Expressjs 有很多问题,也许这个问题很严重,但在不使用 * 的情况下导入似乎至少可以通过调用重载的use函数来解决问题。
@natejgardner您的问题出在 Api 路由器上:
您可以尝试这样的解决方案(进入“./routes/api”文件):
import { Router } from "express";
const router: Router = Router();
router.get("/", getInfo);
// ...other routes...
export = router;
这对我有用....享受:)
这是固定的吗?
最有用的评论
嗨@natejgardner' 不可分配给类型为 'RequestHandlerParams' 的参数
我也遇到了这个错误,花了太多时间来解决这个问题。 我尝试通过编写自己的 d.ts 来修复类型定义。 文件,但我失败了。 然后我遇到了这个expressjs:typescript: Argument of type 'typeof
我看到 TypeScript 类型和 Expressjs 有很多问题,也许这个问题很严重,但在不使用 * 的情况下导入似乎至少可以通过调用重载的use函数来解决问题。