我想在我的TypeScript项目中使用第三方库,如Knockout。TypeScript,AMD(requireJS)&导入第三方库驱动我疯了
至于组织我的代码,我使用AMD(requireJS是具体的)并在我的项目中使用这些库,我从绝大多数的项目中加载d.ts文件。
现在,虽然我可以用我自己的模块和库 - 它们都建有打字稿 - 与ththisË简单的1个班轮:
import PeopleViewModel = require("../ViewModels/PeopleViewModel");
我不能这样做与提供的d.ts档案由绝对。
现在我知道amd-dependency-command,但我不明白这是如何有用的。 在我的JS代码中,我确实得到了在define-call中的路径的引用,但在创建的回调中没有引用该变量。
在代码中 “说” 它:
我的TS-文件(移除了///的openening标签 - 命令,否则它不会显示在这里计算器):
/// reference path="../../../../Libs/Knockout/knockout.d.ts" />
/// amd-dependency path="../../../../Libs/Knockout/knockout-3.1.0" />
import PeopleViewModel = require("../ViewModels/PeopleViewModel");
var johnViewModel = new PeopleViewModel("john");
var exampleVar = ko.observable(johnViewModel);
编译为:
define(["require", "exports", "../ViewModels/PeopleViewModel", "../Libs/Knockout/knockout-3.1.0"], function(require, exports, PeopleViewModel) {
var johnViewModel = new PeopleViewModel("john"); var exampleVar = ko.observable(johnViewModel);
});
现在可以看到的是,AMD的依赖创造了正确的链接到淘汰赛,JS文件,但它不yiel在d.ts文件中声明的“ko”变量。
如何在不触碰js文件的情况下使其工作?
也许在amd-dependency-command中有一个参数,但是仍然没有关于这个的文档。
谢谢大家!
谢谢你的帮助约翰尼!我其实是这样做的,但我不喜欢它,因为我必须通过“