我想扩展Express Session类型以允许在会话存储中使用我的自定义数据.我有一个对象req.session.user
是我班级的一个实例User
:
export class User {
public login: string;
public hashedPassword: string;
constructor(login?: string, password?: string) {
this.login = login || "" ;
this.hashedPassword = password ? UserHelper.hashPassword(password) : "";
}
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了我的own.d.ts
文件以将定义与现有的快速会话类型合并:
import { User } from "./models/user";
declare module Express {
export interface Session {
user: User;
}
}
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用 - VS Code和tsc看不到它.所以我用简单的类型创建了测试定义:
declare module Express {
export interface Session {
test: string;
}
}
Run Code Online (Sandbox Code Playgroud)
并且测试字段工作正常,因此导入导致问题.
我也尝试添加/// <reference path='models/user.ts'/>
导入但是tsc没有看到User类 - …