就在我认为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);