【问题标题】:Property 'version' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs>'类型 'Request<ParamsDictionary, any, any, ParsedQs>' 上不存在属性 'version'
【发布时间】:2020-09-17 13:21:11
【问题描述】:

我有以下代码

app.use(function (req: Request, res, next) {
  req.version = req.headers['accept-version'] || '1.0.0';
  next();
});

我有文件 express.d.ts

declare namespace Express {
  export interface Request {
    version?: string | string[];
  }
}

并在 tsconfig.json

  "compilerOptions": {
    // other options
    "typeRoots": ["./typings", "./node_modules/@types"]
  },
  "include": [
    "src/**/*.ts",
    "typings/**/*"
  ],

此设置已解决问题

类型“Request”上不存在属性“version”。

在 vscode 本身中。但是,在执行npm run startnodemon 时,终端中会出现问题。

我错过了什么吗?

【问题讨论】:

  • 我有同样的错误 - 在 vscode 中似乎没问题

标签: node.js typescript express


【解决方案1】:

我通过注意 nodemon 运行的命令来解决此问题,例如npm run start:dev

ts-node -r tsconfig-paths/register ./src

然后使用这个answer

我只将-T 转译添加到命令中,并改用它。

  "scripts": {
    ...
    "start:dev": "ts-node -T -r tsconfig-paths/register ./src",
    ...
  },

也许有办法让nodemon 做正确的事

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2021-10-02
    • 2021-12-28
    • 2020-08-17
    • 2022-12-17
    • 2021-02-08
    • 2019-09-20
    • 2018-09-09
    • 2019-12-31
    相关资源
    最近更新 更多