Ich verwende node v6.10.3
, typescript v2.3.4
und jsonwebtoken v7.4.1
. Bis heute war ich Typinformation von @types/jsonwebtoken v7.2.0
, aber ich zu @types/jsonwebtoken v7.2.1
aufgerüstet und jetzt, wenn ich meine Anwendung ausführen gibt es den Fehler:@ types/jsonwebtoken 7.2.1 gibt seltsamen Typ Fehler. Warum?
src/reports/password-reset/password-reset.report.ts(18,23): error TS2345: Argument of type '{ ownerId: string; passwordResetToken: boolean; }' is not assignable to parameter of type 'string | object | Buffer'.
Object literal may only specify known properties, and 'ownerId' does not exist in type 'string | object | Buffer'.
Für die Codezeile:
let token = sign({ownerId:passwordResetRequest.ownerId, passwordResetToken: true },
configuration.secret, {
expiresIn: timeToLiveInSeconds
});
Diese Fehler tritt nicht mit @types/jsonwebtoken v7.2.0
, nur v7.2.1
auf.
Seltsamerweise, wenn ich mein Projekt innerhalb Visual Studio Code (dieselbe Version von TypeScript) erstellen, zeigt es denselben Fehler, aber wenn ich auf den Fehler klicke und zu der relevanten Datei gehe, verschwindet der Fehler und VS Code ist glücklich mit der Syntax.
Auch die Fehlermeldung sagt mir, dass mein Objekt {ownerId:passwordResetRequest.ownerId, passwordResetToken: true }
nicht an einen Parameter des Typs string | object | Buffer
übergeben werden kann, aber es ist eindeutig ein Objekt. Ich habe keine Ahnung, warum es sich überhaupt interessiert, was der Inhalt des Objekts ist.
Beachten Sie auch, dass es funktioniert - wie die tatsächliche jsonwebtoken
Bibliothek ist in Ordnung - es ist nur die @type
Informationen, die das Problem während des Build verursacht.
Also ich habe gerade wieder auf @types/jsonwebtoken v7.2.0
zurückgesetzt und alles funktioniert gut. Kein großes Problem, aber was ist los?