【发布时间】:2017-12-08 19:21:41
【问题描述】:
我正在将 expressjs 与最新的 typescript 定义文件和来自https://github.com/DefinitelyTyped/DefinitelyTyped 的 typescript 2.3.4 一起使用。
我定义了一个路由器,并希望按照官方 4.x 文档 (app.use('/calendar', router);) 中所述从子路径使用它,但出现以下错误
Error: /Users/matthias/Documents/private workspace/universal/src/server/server.ts (161,34): Argument of type 'typeof "/Users/matthias/Documents/private workspace/universal/src/server/routes/login.router"' is not assignable to parameter of type 'RequestHandlerParams'.
Type 'typeof "/Users/matthias/Documents/private workspace/universal/src/server/routes/login.router"' is not assignable to type '(RequestHandler | ErrorRequestHandler)[]'.
Property 'length' is missing in type 'typeof "/Users/matthias/Documents/private workspace/universal/src/server/routes/login.router"'.
这是我正在使用的路由器,省略了实际代码...
const router : express.Router = express.Router();
let loginController = new LoginController();
router.post('/signin', function(req: express.Request, res: express.Response, next: express.NextFunction) {
...
})(req, res, next);
});
...
export default router;
...这是对它的调用的缩短版本。
import * as loginRouter from './routes/login.router';
private app = express();
this.app.use('/api/v1/auth', loginRouter);
我做错了什么还是这个用例没有在打字稿定义文件中正确定义?
亲切的问候
【问题讨论】:
-
我遇到了一个相关问题,对我来说,解决方案是 this post 在相关的 GitHub 问题上。
标签: javascript express typescript typescript-typings