无法修改会话对象 express-session

问题描述 投票:0回答:0

我知道有很多关于这个的话题,但我花了过去 2 个小时搜索但没有任何帮助。

你好,我很难尝试在 typescript 中扩展 express-session 的会话对象。

我有以下文件

src/types/express/index.d.ts

import account_document from "../account/account-document"
import xcsrftoken from "../data-types/x-csrf-token"

declare global {
    namespace Express {
        interface Request {
            authenticated_user: account_document
        }
        interface SessionData {
            xcsrftoken: xcsrftoken
        }
    }
}

src/types/express-session/index.d.ts

import xcsrftoken from "../data-types/x-csrf-token";

declare module "express-session" {
    interface SessionData {
        xcsrftoken: xcsrftoken
    }
}

tsconfig.json

{
    "compilerOptions": {
        "target": "ES2017",
        "module": "commonjs",
        "strict": true,
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "esModuleInterop": true,
        "typeRoots": ["./src/types/express", "./src/types/express-session", "./node_modules/@types"]
    },
    "exclude": ["node_modules"]
}

但是下面的脚本返回

Property 'xcsrftoken' does not exist on type 'never'.

if (!req.session) {
  req.session.xcsrftoken = {}
}

我该如何解决?

typescript express-session
© www.soinside.com 2019 - 2024. All rights reserved.