首页 > 解决方案 > “会话和部分”类型上不存在属性“用户 ID”'

问题描述

我在我的项目中使用 express-session,但是在将 express-session 更新到 1.17.1 后,tsc 编译出现了一些错误:

在此处输入图像描述

添加类型合并后,如下所示:

在此处输入图像描述

vscode 编辑器中的错误不再存在。但是当我运行 tsc 命令时,它仍然得到相同的错误:

在此处输入图像描述

谁能帮我解决这个问题?

标签: typescriptexpress-session

解决方案


编辑:我注意到他们提供了一个如何声明您已实现的合并的示例,值得提供一个代码框。我在想象您的 ts 编译器缺少您的声明文件,请将其包含在tsconfig.jsonfiles 部分下,否则值得提供一个代码沙箱,我会看看 :)

如果我没记错的话,SessionData 的类型似乎在会话的命名空间下(第 213 行)https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/express-session,因此您需要从该命名空间下导出接口(注意声明行如何更改,以及导出接口)

declare namespace session {
  export interface SessionData {
    userId: any;
    loadedCount: number;
  }
}

推荐阅读