Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何导入不使用awesome typescript loader导出模块的npm包?_Typescript_Npm - Fatal编程技术网

如何导入不使用awesome typescript loader导出模块的npm包?

如何导入不使用awesome typescript loader导出模块的npm包?,typescript,npm,Typescript,Npm,我正在尝试使用webpack awesome typescript loader捆绑我的项目,但是我遇到了一些无法将自己导出为模块的模块的问题 一个例子是引导对话框npm包(我安装了引导开关和@types/bootstrap开关包)。@types不导出模块,只声明一个名称空间,并添加到JQuery接口。 : 在我的app.ts中,我这样使用它: import {OtherClass} from './otherclass' $(document).ready(()=>{ let t

我正在尝试使用webpack awesome typescript loader捆绑我的项目,但是我遇到了一些无法将自己导出为模块的模块的问题

一个例子是引导对话框npm包(我安装了引导开关和@types/bootstrap开关包)。@types不导出模块,只声明一个名称空间,并添加到JQuery接口。 :

在我的app.ts中,我这样使用它:

import {OtherClass} from './otherclass'

$(document).ready(()=>{ 
  let thisPage= new PageEntry ();
  thisPage.init();
}

class PageEntry {
  public init(): void {
    $('.bss').bootstrapSwitch();
    let x = new OtherClass();
   x.doSomething();
  }
}
但webpack的输出不包括引导开关代码。我试着加上:
import*作为“引导开关”的引导开关但是我显然得到了一个错误

节点_modules/@types/bootstrap switch/index.d.ts'不是模块

如何确保引导开关被拉入


我以bootstrap switch为例,但我有大约5个包有相同的问题。

import*as bs from'bootstrap switch'当然给出了一个错误,因为没有导出模块

然而,下面两行对我来说很有用。。。只是不确定这是最好的方法:

declare var require: any;
let bs = require('bootstrap-switch');
import {OtherClass} from './otherclass'

希望这对别人有帮助。让我知道是否有更好的方法。

如果一个文件没有导出,因此仅为其副作用而导入(例如,它增加了
jQuery
),那么在ECMAScript中导入它的正确方法,以及通过扩展名TypeScript,如下所示

import 'bootstrap-switch';
一个更完整的示例:

import $ from 'jquery';
import 'bootstrap-switch';

$("[name='my-checkbox']").bootstrapSwitch();

我已经能够通过以下方式实现这一点:最肯定的是更好的方式