You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cookie-session中声明会话类型以实现TypeScript类型推导?

为cookie-session声明TypeScript会话类型的方法

和express-session扩展SessionData接口的方式不同,cookie-session需要针对它的CookieSessionObject接口做类型扩展,具体步骤如下:

  1. 扩展cookie-session的类型定义
    在项目代码中(比如app.ts文件顶部,或者单独的types/cookie-session.d.ts类型文件里)添加以下声明:
declare module 'cookie-session' {
  interface CookieSessionObject {
    isSuperAdmin: boolean;
    token: string;
    operatorId: number;
    providerId?: number;
  }
}
  1. 确保类型被TypeScript识别
    如果使用单独的类型文件,需要在tsconfig.json的include数组中包含该文件,示例配置:
{
  "include": ["src/**/*", "types/**/*"]
}
  1. 保持cookie-session配置不变
    你的现有配置代码无需修改:
app.use(
  cookieSession({
    secret: process.env.SESSION_SECRET as string,
  })
);
  1. 直接访问会话属性
    完成上述步骤后,TypeScript会自动识别你定义的会话属性,无需每次检查属性是否存在:
// 可直接使用,无类型报错
const isAdmin = req.session.isSuperAdmin;
const userToken = req.session.token;

若遇到类型不生效的情况,先确认已安装@types/cookie-session依赖:

npm install @types/cookie-session --save-dev

内容的提问来源于stack exchange,提问作者Diego Rosselot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:50:55