【发布时间】:2021-04-24 13:13:04
【问题描述】:
我知道这不是实际问题,而是需要帮助。
我在 typescript 和 express session 上苦苦挣扎,我一直在玩,并试图弄清楚这个问题。
我正在尝试扩展我的会话对象,为此,我正在尝试按照文档中的内容进行类型合并:
我有一个types/session.d.ts,需要合并以下接口:
declare module 'express-session' {
interface SessionData {
userId: string;
}
}
但这不起作用,例如,other-folder/some.ts
req.session.userId = user.id;
// Property 'userId' does not exist on type 'Session & Partial<SessionData>'.
但是,如果我从 express-session 导入 Session,它确实有效:
import { Session } from 'express-session'
declare module 'express-session' {
interface SessionData {
userId: string;
}
}
我对 TypeScript 不是很精通,我不确定在类型定义中导入模块,事件 TypeScript 抱怨这个(警告):
“会话”已声明,但其值从未被读取。
我想知道,这是解决问题的正确方法吗?
我可以做些什么不同的事情?
亲切的问候!
PS:我的 tsconfig 应该没问题,因为我可以通过我的代码获得其他类型定义,并且它们完全没有问题。
【问题讨论】:
标签: typescript express express-session