我试图在我的项目中加载nouislider模块:Angular 2 beta-0,使用SystemJs 0.19.4的Typescript 1.7。
我有一种解决方法:通过更改tsd
为我安装的.d.ts文件。我想知道在不更改原始打字稿定义文件:nouislider.d.ts的情况下,如何加载模块。
通过我的更改,我现在可以nouislider
像下面这样在SystemJ的Typescript项目中加载和使用它:
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不会从正确的路径加载模块。我导出了create函数,因为否则我无法加载它
如何防止进行这两项更改?我自己创建一个引用内部模块定义的外部模块定义或以其他方式实现相同结果而无需更改nouislider.d.ts会很满足。我已经尝试了很多方法,但是无法使其正常工作,并且似乎在所有文档中迷失了方向。非常感谢您的帮助。
除了在DefinitelyTyped上创建拉取请求并建议添加外,我无所畏惧
declare module 'noUiSlider/distribute/nouislider' {
export = noUiSlider;
}
这应该只是增加了将其用作外部模块的可能性,而不会破坏任何现有用途
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句