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.
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);