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.
_
私のために働いた解決策は次のとおりでした:
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);