Import-Klasse in Definitionsdatei (* d.ts)

Ich möchte Express Session-Typisierungen erweitern, um die Verwendung meiner benutzerdefinierten Daten im Sitzungsspeicher zu ermöglichen. Ich habe ein Objektreq.session.user das ist eine Instanz meiner KlasseUser:

export class User {
    public login: string;
    public hashedPassword: string;

    constructor(login?: string, password?: string) {
        this.login = login || "" ;
        this.hashedPassword = password ? UserHelper.hashPassword(password) : "";
    }
}

So habe ich mein @ erstelown.d.ts -Datei zum Zusammenführen der Definition mit vorhandenen Express-Sitzungstypen:

import { User } from "./models/user";

declare module Express {
    export interface Session {
        user: User;
    }
}

Aber es funktioniert überhaupt nicht - VS Code und TSC sehen es nicht. Also habe ich eine Testspezifikation mit einfachem Typ erstellt:

declare module Express {
    export interface Session {
        test: string;
    }
}

Und das Testfeld funktioniert einwandfrei, der Import verursacht also ein Problem.

Ich habe auch versucht, @ hinzuzufüg/// <reference path='models/user.ts'/> stattdessen importieren, aber der tsc konnte die User-Klasse nicht sehen - wie kann ich meine eigene Klasse in der * d.ts-Datei verwenden?

BEARBEITEN Ich habe tsc so eingestellt, dass beim Kompilieren Definitionsdateien generiert werden, und jetzt habe ich meine user.d.ts:

export declare class User {
    login: string;
    hashedPassword: string;
    constructor();
    constructor(login: string, password: string);
}

Und die eigene Eingabedatei zur Erweiterung von Express Sesion:

import { User } from "./models/user";
declare module Express {
    export interface Session {
        user: User;
        uuid: string;
    }
}

Aber funktioniert immer noch nicht, wenn die import-Anweisung oben ist. Irgendwelche Ideen

Antworten auf die Frage(4)

Ihre Antwort auf die Frage