参考错误未定义Angular 2类型

时间:2016-11-02 16:52:53

标签: angular webpack typescript-typings

我试图在我的应用程序中使用webpack包含第三方模块,如此

//package.json
 "dependencies": {
          "jsrsasign": "6.1.4"
 }

//custom-typings.d.ts
declare module KJUR {
module jws {
    module JWS {
        function readSafeJSONString(token: string): any;
        function verifyJWT(token: string, key: string, data: Object): boolean;
   }
  }
}

//webpack.json
entry: {
   'vendor':    './src/vendor.browser.ts',
},

//vendor.browser.ts
import 'jsrsasign';

我可以在Chrome中看到该模块正在加载到node_modules中,我可以从Chrome中的webpack文件夹中打开它。以下是调用模块

的组件中的代码
  let tokenHeader: TokenHeader = KJUR.jws.JWS.readSafeJSONString(token.split('.')[0]);

然而,当我到达这一行时,我得到了

  

app.component.ts:45 ReferenceError:未定义KJUR

我猜我在这里错过了一步,因为我已经按照所有教程我都可以。我是否还需要将jsrsasign导入到我的模块中?零件?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您是否尝试将其添加到ProvidePlugin中,如下所示: https://webpack.github.io/docs/shimming-modules.html

答案 1 :(得分:0)

您需要导入KJUR:

import { KJUR } from 'jsrsasign';

declare module KJUR {
    export module jws {
        export class JWS {
            static readSafeJSONString(token: string): any;
            static verifyJWT(token: string, key: string, data: Object): boolean;
        }
    }
}