【发布时间】:2016-12-18 10:32:27
【问题描述】:
我正在开发一个带有 npm 包的 Typescript 项目。我想在 Express.Session 接口中添加一个属性。
示例类:
class User {
name: string;
email: string;
password: string;
}
export = User;
用于接口定义的新 d.ts 文件(不想编辑 express-session.d.ts):
declare namespace Express {
interface Session {
user: User
}
}
app.ts
import User = require('./User');
function (req: express.Request, res: express.Response) {
req.session.user //I want to use it like this.
}
问题是,用户在 de d.ts 文件中是未知的。但既不需要也不需要导入用户文件修复。
如何将自己的类添加到会话界面?
【问题讨论】:
-
你可能做不到。您可以向 typescript 编译器声明
Session实例具有此用户属性,但实际上(在运行时)并非如此。 Express 会执行你的函数,他们会传递一个有会话的请求,但是这个会话没有这个用户。 -
如果我也将它实现为 d.ts 文件中的接口,它就可以工作。但是如果我只需要写一次就更好了。或者至少类和接口在同一个文件中。
标签: node.js express typescript npm express-session