Bruke jwt-decode med Typescript front-end prosjekt
Beskrivelse Jeg prøver å bruke jwt-decode i et TypeScript-prosjekt, altså Stencil-prosjekt, og det gir følgende feil:
Dette uttrykket kan ikke kalles. Type '{ default: (token: string, options?: Options) => TTokenDto; }' har ingen kallsignaturer.
import * as jwt_decode from 'jwt-decode';
.
.
.
let token = "........";
let decoded = jwt_decode(token);
Reproduksjon
- installer jwt-decode i ethvert typescript-prosjekt npm install --save @types/jwt-decode npm install --save jwt-decode importer det i koden din & bruk import * as jwt_decode from 'jwt-decode'; ... let token="........"; let decoded=jwt_decode(token);
- bygg prosjekt
- Versjon av dette biblioteket som brukes: ^2.2.0 Versjon av plattformen eller
- rammeverk brukt, hvis aktuelt: stencil - ^1.3.3, typescript - 3.7.2
Svar #1
Følgende korrigering av importsetningen fungerer fint:
import jwt_decode from 'jwt-decode';
Oppdatering (november 2023): Som påpekt i kommentarene, har pakken jwt-decode ikke lenger en standardeksport. Derfor er den riktige importsetningen nå:
import { jwtDecode } from 'jwt-decode';
Svar #2
For Angular 17 og nyere må du importere en navngitt eksport i stedet (som @Jared Smith sa)
import { jwtDecode } from 'jwt-decode';
