提问人:Mehrad Farahnak 提问时间:5/7/2023 更新时间:5/7/2023 访问量:163
在 TypeScript 中更改 Express 的命名空间
changing namespace of express in typescript
问:
我想更改我的打字稿文件中的 express 命名空间并向其添加另一个选项,但 eslint 出现一些错误,
declare global {
namespace Express {
interface Request {
currentUser?: User;
}
}
}
错误是: ES2015 模块语法优先于命名空间。
除了更改 TS 规则之外,我该如何修复此错误
答:
1赞
Artur Minin
5/7/2023
#1
你可以这样做:
declare module 'express' {
export interface Request {
currentUser?: User;
}
}
评论
0赞
Mehrad Farahnak
5/7/2023
非常感谢,但是在添加此eslint之后,属性“session”在类型“Request<ParamsDictionary,any,any,ParsedQs,Record<string,any”上不存在>>
0赞
Artur Minin
5/7/2023
尝试从 的原生接口扩展express
Request
0赞
Mehrad Farahnak
5/7/2023
你能写吗,sry,我看不懂
0赞
Artur Minin
5/7/2023
import { Request } from 'express'
declare module 'express' { export interface RequestExtended extends Request { currentUser?: User;
0赞
Mehrad Farahnak
5/7/2023
不,它不起作用。导出接口“RequestExtended”的“extends”子句具有或正在使用私有名称“Request”。
评论