我正试图在我的项目中加载nouislider模块:Angular 2 beta-0,Typescript 1.7,使用SystemJs 0.19.4。
我有一个解决办法:通过更改tsd
为我安装的.d.ts文件。我想知道在不更改原始typescript定义文件的情况下,我可以做些什么来加载模块:nouislider.dts.
通过我的更改,我目前可以加载nouislider
,并在我的Typescript项目中使用它,SystemJs如下:
import {create as createSlider} from 'noUiSlider/distribute/nouislider';
createSlider(document.getElementById('test-slider'), {
start: 40, connect: "lower",
range: { 'min': 0, 'max': 100 }
});
我所做的是改变nouislider.d.ts
:顶部的这两行
declare module noUiSlider {
function create(target: HTMLElement, options: Options): void;
进入
declare module 'noUiSlider/distribute/nouislider' {
export function create(target : HTMLElement, options : Options) : void;
我将模块的名称设置为"noUiSlider/distribute/noUiSlider",否则System.js不会从正确的路径加载模块。我导出创建函数,因为否则我无法加载
我怎样才能阻止做出这两项更改?我很乐意自己创建一个引用内部模块定义的外部模块定义,或者在不更改nouislider.dts的情况下以其他方式实现相同的结果。我尝试了很多方法,但都无法实现,而且似乎在所有文档中都迷失了方向。非常感谢你的帮助。
恐怕除了在DefinelyTyped上创建拉取请求并建议添加之外,你无能为力
declare module 'noUiSlider/distribute/nouislider' {
export = noUiSlider;
}
这应该只是增加了将其用作外部模块的可能性,而不会破坏任何现有的使用