【发布时间】:2014-06-04 19:52:50
【问题描述】:
我正在尝试在我的 TypeScript 项目中使用 3rd-Party-Libraries,例如 Knockout。
在组织我的代码时,我使用的是 AMD(具体来说是 requireJS),为了在我的项目中使用库,我从出色的绝对类型项目中加载 d.ts 文件。
现在,虽然我可以使用我自己的模块和库 - 它们都是用 TypeScript 构建的 - 使用 ththis e simple 1 liner:
import PeopleViewModel = require("../ViewModels/PeopleViewModel");
我不能用肯定类型提供的 d.ts 文件来做到这一点。
现在我知道了 amd-dependency-command,但我不明白它有什么用处。 在我的 JS 代码中,我确实在定义调用中获得了对路径的引用,但没有在创建的回调中获得变量。
用代码“说”它:
我的 TS 文件 (从 /// 命令中删除了打开标签,否则它不会在 stackoverflow 中显示):
/// 参考路径="../../../../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 依赖项创建了指向 knockout-js 文件的正确链接,但它没有产生在 d.ts 文件中声明的“ko”变量。
如何在不接触 js 文件的情况下使其工作?
也许 amd-dependency-command 中有一个参数,但仍然没有关于它的文档。
非常感谢大家!
【问题讨论】:
标签: requirejs typescript amd definitelytyped