J'utilise VS Code. Il est basé sur TypeScript, il utilise toutes les définitions TS. Le problème est avec la bibliothèque jsonwebtoken
. jwt.sign(...,)
n'a pas d'objet.
// Définitions de type pour jsonwebtoken 7.2.0
// Projet : https://github.com/auth0/node-jsonwebtoken
// Définitions par : Maxime LUCE https://github.com/SomaticIT , Daniel Heim https://github.com/danielheim
// Définitions : https://github.com/DefinitelyTyped/DefinitelyTyped
// Version TypeScript : 2.2
export declare function sign(payload: string | Buffer | object, secretOrPrivateKey: string | Buffer, options: SignOptions, callback: SignCallback): void;
Dans JWT, vous pouvez passer n'importe quel objet que vous voulez, mais un simple jwt.sign({userId: 1},...)
ne fonctionne pas, il dit :
Argument of type '{ userId: number; }' is not assignable to parameter of type 'string | object | Buffer'.
Object literal may only specify known properties, and 'userId' does not exist in type 'string | object | Buffer'.
Devrait être corrigé par Microsoft/TypeScript#16290. Veuillez l'essayer avec typescript@next
une fois que c'est dedans.
Comme @andy-ms l'a mentionné, cela est dû à un bogue dans TypeScript (Microsoft/TypeScript#16235)
La solution de contournement consiste à utiliser l'inférence de type (ou la conversion), par exemple ;
const payload = { "foo": "bar" }
jwt.sign(payload, secret)
@mdebruijne Merci,
Commentaire le plus utile
Comme @andy-ms l'a mentionné, cela est dû à un bogue dans TypeScript (Microsoft/TypeScript#16235)
La solution de contournement consiste à utiliser l'inférence de type (ou la conversion), par exemple ;