typescript - controller.ts(8,8) : error TS2339: Property 'user' does not exist on type 'Request' while extending express. 请求

标签 typescript typescript-typings

我遇到了以下错误。请帮助我。

controller.ts(8,8): error TS2339: Property 'user' does not exist on type 'Request'.

Controller .ts

import * as express from 'express';
class Users{
 public showUser(
    req: express.Request,
    res: express.Response,
    next: express.NextFunction
  ) {
     return req.user;

 }
}
const users = new Users();
export = {
 showUser: users.showUser
}

express.custommerge.d.ts

// Extend the Express interface with declaration merging
import { User } from './api';
declare namespace Express {
  export interface Request {
    user: User; 
  }
}

API.ts

export class User {
 'userId': string
}

注意事项:

如果我不在 express.custommerge.d.ts 中包含 import { User } from './api'; 并添加 any,则不会出现此错误> 而不是 User

最佳答案

如果我在

中进行以下更改,它会起作用

express.custommerge.d.ts

import { User } from './api';
declare namespace Express {
  export interface Request {
    user: User; 
  }
}

关于typescript - controller.ts(8,8) : error TS2339: Property 'user' does not exist on type 'Request' while extending express. 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49903112/

相关文章:

javascript - 在 Angular4 应用程序中创建自己的日期选择器

reactjs - 使用 Definitely Typed 中的 Typescript 定义文件和旧版本的 Typescript

typescript - 使用 cypress 命令验证下载文件 (PDF/Word/Excel) 的数据

TypeScript 按任意类型过滤元组类型

reactjs - 使用 docker compose 运行 TypeScript React 应用程序时出错

typescript - 有没有办法将 "extract"类型的 TypeScript 接口(interface)属性?

typescript - 两种方式的数据绑定(bind)不适用于 <select>

javascript - 未捕获的类型错误 : Cannot read property 'call' of undefined' in backend. min.js:2

javascript - Gatsby.js : how to migrate all *. js文件到*ts?

typescript - 如何在 typescript 中创建对象时通过传递JSON来初始化构造函数参数