我正在尝试在我的TypeScript项目中使用第三方库,例如Knockout。
在组织我的代码时,我正在使用AMD(requireJS是特定的)并在我的项目中使用库,我从伟大的absolutetyped项目加载d.ts文件。
现在虽然我可以使用我自己的模块和库 - 这些都是使用TypeScript构建的 - 使用这个简单的1个衬垫:
导入PeopleViewModel = require(“../ ViewModels / PeopleViewModel”);
我无法使用由absolutetyped提供的d.ts文件。
现在我知道了amd-dependency-command,但我不明白它是如何有用的。 在我的JS代码中,我确实引用了define-call中的路径,但没有引用创建的回调中的变量。
在代码中“说出”:
我的TS-File (从/// - 命令中删除了openening-tag,否则它将不会在stackoverflow中显示):
/// reference path =“../../../../ Libs / Knockout / knockout.d.ts”/>
/// amd-dependency path =“../../../../ Libs / Knockout / knockout-3.1.0”/>
导入PeopleViewModel = require(“../ ViewModels / PeopleViewModel”);
var johnViewModel = new PeopleViewModel(“john”);
var exampleVar = ko.observable(johnViewModel);
编译为:
define([“require”,“exports”,“../ ViewModels / PepertViewModel”,“../ Libs / Knockout / knockockout-3.1.0”],function(require,exports,PeopleViewModel){
var johnViewModel = new PeopleViewModel("john"); var exampleVar = ko.observable(johnViewModel);
});
现在你可以看到,amd-dependency创建了与knockout-js文件的正确链接,但它不是“do”文件中声明的“ko”变量。
如何在不触及js文件的情况下使其工作?
也许amd-dependency-command中有一个参数,但是仍然没有关于它的文档。
非常感谢你们!
答案 0 :(得分:1)
要使用定义文件,您只需要在文件的头部添加这样的引用:
/// <reference path="jquery/jquery.d.ts" />
或者如果使用视觉工作室,你甚至不需要它们!
如果使用visual studio 2012和nuget,您可能因不正确的内容类型问题而陷入困境。确保在解决方案资源管理器中将所有键入文件(* .d.TS)设置为TypeScriptCompile。
无需输入文件的必需语法。