如何将jwt解码类型定义导入Typescript(Ionic 2)



就在我认为Typescript中的Typeings得到控制的时候,我遇到了相反的事情。

这次我尝试使用jwt解码。我已经通过命令typings i dt~jwt-decode --save安装了类型定义

的两个问题

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代码)显示错误"[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';

但仍然无法正确导入。

[更新2]我可以添加语句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);

最新更新