gpt4 book ai didi

typescript - 如何声明节点请求 session 对象的 typescript 接口(interface)扩展?

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:02 26 4
gpt4 key购买 nike

在下文中,returnTo 通过我的 Passport 方法添加到 session 对象。如何在 typescript 中声明其接口(interface)?

import express = require('express');
import expressSession = require('express-session');

// how to declare presence of returnTo, which is not in underlying type?

export function createSession(req: express.Request, res: express.Response, next: Function) {

passport.authenticate('local', (err: any, user: UserInstance, info: any) => {
//. . .
req.logIn(user, (err) => {
//. . .
res.redirect(req.session.returnTo || '/');
});
})(req, res, next);
};

最佳答案

在 DefinitelyTyped 上有一个 express-session 的类型声明:

https://github.com/borisyankov/DefinitelyTyped/blob/master/express-session/express-session.d.ts

按照该文件中的模式,您可以创建一个新的 d.ts(随意命名)包含:

declare module Express {
export interface Session {
returnTo: string;
}
}

TypeScript 会将此额外属性“合并”到现有定义中。

关于typescript - 如何声明节点请求 session 对象的 typescript 接口(interface)扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com