2017-01-24 9 views
8

Właśnie wtedy, gdy myślę, że mam pod kontrolą Wpisanie pisma, natrafiam na coś, co dowodzi czegoś przeciwnego.Jak zaimportować definicję typu jwt do Typeescript (Ionic 2)

Tym razem próbuję użyć jwt-decode. Mam zainstalowany definicji typu poprzez polecenie typings i dt~jwt-decode --save

dwa problemy

1. Kiedy patrzę na index.d.ts widzę następujące

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

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

IDE (Code VS) jest wyświetlanie error "[ts] Globalne eksporty modułów mogą pojawiać się tylko na najwyższym poziomie" pod ostatnią linią export as namespace jwt_decode;

2. Jak mogę to zaimportować?

staram instrukcji import ..

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

ale nie widzę nic do zaimportowania.

Żaden z innych (wielu) przykładów, które mogę znaleźć, nie pomaga. To musi być proste, po prostu nie znam składni.

Z góry dziękuję za pomoc.

[UPDATE] Po pewnym więcej czytania, wygląda typowania został zastąpiony przez tylko używając npm ..

Więc próbowałem

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

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

Ale wciąż nie może zmusić go do importowania poprawnie .

[Update2] mogę dodać oświadczenie let t = jwt-decode("aaa"); i zobacz podpis, ale mam następujący błąd IDE

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

+0

import * jako JWT z "jtw-decode"; w ostatniej linii powinno być 'jwt-decode' czy to literówka? –

+0

Ah tak był literówka. Poprawiono i dodano trochę więcej informacji – peterc

+2

te 3 pracował dla mnie npm zainstalować flagą --save JWT-dekodowania npm zainstalować --save @ typów/JWT-dekodowania // i import za pośrednictwem import * jak JWT z „JWT -rozszyfrować'; – sawe

Odpowiedz

9

Rozwiązanie że pracował dla mnie było:

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); 
+0

Jak uzyskać konkretną wartość z tokenu jwt. czy to możliwe w kanciastym. Powyżej jest tylko drukowany obiekt. Muszę uzyskać wartości z t. Jak możemy to osiągnąć. – user3198259

+0

zmienna t ma wszystkie właściwości dostępu do niej jak inny obiekt. –