TypeScript、AMD(requireJS)和;导入第三方库让我发疯

TypeScript、AMD(requireJS)和;导入第三方库让我发疯,requirejs,typescript,amd,definitelytyped,Requirejs,Typescript,Amd,Definitelytyped,我正在尝试在我的TypeScript项目中使用第三方库,如Knockout 在组织我的代码时,我使用AMD(具体来说是requireJS),为了在我的项目中使用库,我从伟大的definitelytyped项目中加载d.ts文件 现在,虽然我可以使用我自己的模块和库,它们都是用TypeScript构建的,但使用这个简单的1行程序: 导入PeopleViewModel=require(../ViewModels/PeopleViewModel”) 我不能用definitelytyped提供的d.ts

我正在尝试在我的TypeScript项目中使用第三方库,如Knockout

在组织我的代码时,我使用AMD(具体来说是requireJS),为了在我的项目中使用库,我从伟大的definitelytyped项目中加载d.ts文件

现在,虽然我可以使用我自己的模块和库,它们都是用TypeScript构建的,但使用这个简单的1行程序:

导入PeopleViewModel=require(../ViewModels/PeopleViewModel”)

我不能用definitelytyped提供的d.ts文件来做这件事

现在我知道了amd依赖项命令,但我不明白它有多有用。 在我的JS代码中,我确实在define调用中得到了对路径的引用,但在创建的回调中没有得到变量的引用

要用代码“说出”它:

我的TS文件(从///-命令中删除了Opening标记,否则它不会在stackoverflow中显示):

///参考路径=“../../../../Libs/Knockout/Knockout.d.ts”/>

///amd dependency path=“../../../../Libs/Knockout/Knockout-3.1.0”/>

导入PeopleViewModel=require(../ViewModels/PeopleViewModel”)

var johnViewModel=新的PeopleViewModel(“john”)

var exampleVar=ko.可观察(johnViewModel)

其汇编如下:

定义([“require”、“exports”、“./ViewModels/PeopleViewModel”、“./Libs/Knockout/Knockout-3.1.0”]、函数(require、exports、PeopleViewModel){

}))

现在您可以看到,amd依赖项创建了到knockout js文件的正确链接,但它没有指定d.ts文件中声明的“ko”变量

如何在不接触js文件的情况下使其工作

也许amd dependency命令中有一个参数,但是仍然没有相关文档


非常感谢大家

要使用定义文件,您只需要在文件的开头有这样的引用:

/// <reference path="jquery/jquery.d.ts" />
//
或者,如果使用visual studio,您甚至不需要它们

如果使用visual studio 2012和nuget,您可能会遇到不正确的内容类型问题。确保在解决方案资源管理器中将所有键入文件(*.d.TS)设置为TypeScriptCompile


不需要输入文件所需的语法。

谢谢您的帮助,约翰尼!我确实这样做了,但我不喜欢这样,因为我必须通过“Hi Richard,你根本不需要在运行时加载定义文件。你只需要在编译时加载它们-所以不需要为*.d.ts文件使用脚本src。希望我理解正确?Hi Johnny,我知道我不需要定义文件,但是”我将更新我的问题以反映问题。谢谢你的帮助!嗨,Richard,我看到你的问题了。你需要使用import/require来获取淘汰。如果你喜欢,请看这篇文章的示例:John,你太棒了:)谢谢!
/// <reference path="jquery/jquery.d.ts" />