web-dev-qa-db-ja.com

jwt-decodeタイプ定義をTypeScript(Ionic 2)にインポートする方法

TypeScriptのTypingsを制御下に置いていると思うと、反対のことを証明する何かに出くわします。

今回は jwt-decode を使用しようとしています。コマンド_typings i dt~jwt-decode --save_を介してタイプ定義をインストールしました

2つの問題

1。_index.d.ts_を調べると、次のように見えます

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

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

IDE(VS Code)はエラーを表示しています "[ts]グローバルモジュールのエクスポートは最上位レベルでのみ表示される場合があります"最後の行_export as namespace jwt_decode;_

2。これをインポートするにはどうすればよいですか?

Importステートメントを試します。

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

しかし、インポートするものが表示されません。

私が見つけることができる他の(多くの)例はどれも役に立たないようです。それは単純でなければならない、私はただ構文を知らない。

助けてくれてありがとう。

[更新]さらに読むと、npm。を使用するだけでタイピングが置き換えられたようです。

だから私は試した

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

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

しかし、まだ正しくインポートすることができません。

[UPDATE2]ステートメントlet t = jwt-decode("aaa");を追加して署名を確認できますが、次のIDEエラーがあります

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

15
peterc

私のために働いた解決策は次のとおりでした:

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