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

Relaterte artikler