web-dev-qa-db-fra.com

Comment importer la définition de type jwt-decode dans TypeScript (Ionic 2)

Juste au moment où je pense maîtriser les typages de TypeScript, je tombe sur quelque chose qui prouve le contraire.

Cette fois, j'essaie d'utiliser le jwt-decode . J'ai installé la définition de type via la commande typings i dt~jwt-decode --save

Deux problèmes

1. Quand je regarde dans le index.d.ts Je vois ce qui suit

    declare module 'jwt-decode' {
        namespace JwtDecode {
        interface JwtDecodeStatic {
            (token: string): any;
        }
    }

    var jwtDecode: JwtDecode.JwtDecodeStatic;
    export = jwtDecode;
    export as namespace jwt_decode;
    }

Le IDE (VS Code) affiche une erreur "[ts] Les exportations de modules globaux ne peuvent apparaître qu'au niveau supérieur" sous la dernière ligne export as namespace jwt_decode;

2. Comment importer cela?

J'essaie la déclaration d'importation ..

   import { ??  } from 'jwt-decode';

mais je ne vois rien à importer.

Aucun des autres (nombreux) exemples que je peux trouver ne semble aider. Ça doit être simple, je ne connais pas la syntaxe.

Merci d'avance pour votre aide.

[MISE À JOUR] Après quelques lectures supplémentaires, il semble que les saisies aient été remplacées en utilisant simplement npm ..

J'ai donc essayé

npm install --save jwt-decode
npm install --save @types/jwt-decode

// and import via
import * as JWT from 'jwt-decode';

Mais je n'arrive toujours pas à l'importer correctement.

[UPDATE2] Je peux ajouter l'instruction let t = jwt-decode("aaa"); et voir la signature, mais avoir l'erreur suivante IDE

[ts] 'jwt_decode' refers to a UMD global, but the current file is a module. Consider adding an import instead.

15
peterc

La solution qui a fonctionné pour moi était:

npm install --save jwt-decode
npm install --save @types/jwt-decode

// and import via
import * as JWT from 'jwt-decode';

// use JWT() for decode. Not jwt-decode() !!
let t = JWT(token);
34