我正在努力在我的TS项目中设置快速会话。当我对它进行基本设置时(JS方式),我创建了一个在每个API请求时调用的MW,这样我就可以在我的会话中创建或不创建新的用户数组。
import {Request, Response, NextFunction} from 'express'
module.exports = (req: Request, res: Response, next: NextFunction) => {
console.log('session checker : ', req.session)
if (!req.session){
req.session.user = []
console.log('session initialized')
}
next();
}.user上有问题,TS显示了这个错误
Property 'user' does not exist on type 'never'.你有什么办法克服它吗?
提前谢谢你,
保罗
发布于 2020-12-08 21:54:47
根据express-session类型的source code,您需要自己定义SessionData中可用的属性(在代码库中的某个位置):
/**
* This interface allows you to declare additional properties on your session
object using [declaration merging]
(https://www.typescriptlang.org/docs/handbook/declaration-merging.html).
*
* @example
* declare module 'express-session' {
* interface SessionData {
* views: number;
* }
* }
*
*/
interface SessionData {
cookie: Cookie;
}我建议您这样做,因为您更清楚用户拥有哪些属性:
例如(可能您有不同的数据)在项目的index.d.ts文件中:
declare module 'express-session' {
interface SessionData {
user: string;
}
}https://stackoverflow.com/questions/65200186
复制相似问题