参考错误:使用打字稿

时间:2019-03-15 13:02:45

标签: javascript jquery typescript import referenceerror

我正在使用打字稿AMD模块。

在我的 app.ts 中,我获得了以下导入:

import $ from 'jquery';
import 'popper.js';
import 'bootstrap';
//import 'bootstrap-toggle';

我的代码具有jQuery,引导程序和引导程序切换功能。 如果我已注释掉引导程序切换库,如上面显示的上部代码,则我的应用程序运行正常,并且没有显示错误。

但是如果没有我的bootstrap-toggle库,我将无法使用该库的功能。

如果我对此表示赞赏,则会收到以下错误:

  

ReferenceError:未定义jQuery(在bootstrap-toggle.js中)

我的 bootstrap-toggle.js 文件也使用具有以下功能的jQuery:

function ($) {
...
}(jQuery);

我认为,问题在于我只为我的 app.js 包括我的jQuery,而没有在bootstrap-toggle.js

中包括我的jQuery。

但是如何定义全局导入?我不会以这种方式在我的bootstrap-toggle.js文件中导入jQuery,因为它是here的工具,不是我编写的。

谢谢。

最好的问候,

索尼

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 Typescript AMD模块使用了require JS,因此它必须建立一个require js配置文件,如下所示:

requirejs.config({
    baseUrl: '',
    paths: { 
        app: 'app',
        jquery: 'jquery'
    },
    shim: {
        "bootstrap-toggle" : ["jquery"]
    }
});

如果jQuery应该可用于引导程序切换,则它需要require配置中的shim选项。