Definitelytyped: JWT

Créé le 6 juin 2017  ·  3Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

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'.

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 ;

const payload = { "foo": "bar" }

jwt.sign(payload, secret)

Tous les 3 commentaires

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,

Cette page vous a été utile?
0 / 5 - 0 notes