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

TypeScript中express-session的req.session属性不存在类型错误求助

解决方案

要解决req.session的类型错误,核心是告诉TypeScript你自定义的session属性结构,需要扩展express-session的SessionData接口:

1. 创建类型声明文件

在项目的类型目录(比如src/types/)下创建express-session.d.ts文件,用来扩展express-session的内置类型:

import 'express-session';

declare module 'express-session' {
  interface SessionData {
    userName: string;
    firstName: string;
    lastName: string;
    email: string;
    profilePicture: string;
  }
}

2. 确保TypeScript识别声明文件

检查你的tsconfig.json配置,确保TypeScript能扫描到这个自定义类型文件:

{
  "compilerOptions": {
    "typeRoots": ["./node_modules/@types", "./src/types"]
  },
  "include": ["src/**/*"]
}

如果include已经包含了src下所有文件,typeRoots配置可以省略,TypeScript会自动识别目录中的类型声明。

3. 优化session赋值(可选)

你可以将原有的Object.assign替换为更直观的直接赋值,代码可读性更强:

// 替换原有的Object.assign写法
req.session.userName = rows[0].user_name;
req.session.firstName = rows[0].first_name;
req.session.lastName = rows[0].last_name;
req.session.email = rows[0].email;
req.session.profilePicture = rows[0].profile_picture;

完成以上步骤后,req.session.email、req.session.firstName等属性的类型错误会自动消失。

内容的提问来源于stack exchange,提问作者Josh Haywood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:30:52