2017-01-24 17 views
8

Khi tôi nghĩ rằng tôi có Typings trong Typecript dưới sự kiểm soát, tôi bắt gặp một cái gì đó chứng minh điều ngược lại.Làm thế nào để nhập định nghĩa kiểu giải mã jwt thành Typecript (Ionic 2)

Lần này tôi đang cố gắng sử dụng jwt-decode. Tôi đã cài đặt các định nghĩa kiểu thông qua lệnh typings i dt~jwt-decode --save

Hai vấn đề

1. Khi tôi nhìn vào index.d.ts tôi thấy sau

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

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

Các IDE (VS Code) được hiển thị một lỗi "[ts] Xuất mô-đun toàn cầu chỉ có thể xuất hiện ở cấp cao nhất" theo dòng cuối cùng export as namespace jwt_decode;

2. Làm cách nào để nhập mã này?

tôi cố gắng tuyên bố nhập khẩu ..

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

nhưng tôi không thể nhìn thấy bất cứ điều gì để nhập khẩu.

Không có ví dụ nào khác (nhiều) tôi có thể thấy có vẻ hữu ích. Nó phải đơn giản, tôi không biết cú pháp.

Cảm ơn trước vì đã được trợ giúp.

[UPDATE] Sau khi một số đọc nhiều hơn, có vẻ như typings đã được thay thế bằng cách chỉ sử dụng NPM ..

Vì vậy, tôi đã cố gắng

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

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

Nhưng vẫn không thể có được nó để nhập khẩu một cách chính xác .

[UPDATE2] tôi có thể thêm các tuyên bố let t = jwt-decode("aaa"); và xem chữ ký, nhưng có những điều sau lỗi IDE

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

+0

nhập khẩu * như JWT từ 'jtw-decode'; ở dòng cuối cùng phải là 'jwt-decode' là một lỗi đánh máy? –

+0

Ah yes là lỗi đánh máy. Cố định và thêm một chút biết thêm – peterc

+2

những 3 làm việc cho tôi NPM cài đặt --save JWT-decode NPM cài đặt --save @ loại/JWT-decode // và nhập khẩu qua nhập khẩu * như JWT từ 'JWT -decode '; – sawe

Trả lời

9

Các giải pháp mà làm việc cho tôi là:

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

Cách lấy giá trị cụ thể từ mã thông báo jwt. là nó có thể trong góc. Trên đây là đối tượng chỉ in. Tôi cần lấy các giá trị từ t. Làm thế nào chúng ta có thể đạt được điều này. – user3198259

+0

biến t có tất cả các thuộc tính truy cập vào nó như một đối tượng khác. –

Các vấn đề liên quan