在TypeScript中使用import / require来获取接口声明

时间:2012-10-19 23:08:32

标签: javascript typescript js-amd

如果我使用/// <reference path="..."/>语法引用TypeScript声明文件(例如jquery.d.ts),我应该确保通过其他方式加载相应的库,即仅引用。 d.ts文件未加载库。

当我使用它时,有没有办法让TypeScript为库生成require()调用?如果我没有使用AMD / requirejs,我可以手动调用require,但我想让它与AMD合作。

这样做的好处是我的依赖关系不会在两个地方定义。从.ts文件引用库就足以确保它加载,而不必在我的HTML中手动维护依赖项列表。

更新:我打开了new question,说明了我的确切情况。我想对我原来问题的答案给予肯定,因为我没有提供所有必要的细节。

2 个答案:

答案 0 :(得分:6)

是的,TypeScript支持“外部”模块,它们基本上是一流的AMD或CommonJS模块。例如:

MyLib.ts

export function foo() { return 'bar' }

MyProj.ts

import lib = module('./MyLib.ts')
lib.foo(); // returns bar

使用“--module amd”进行编译,您将获得正确的模块并需要为您生成语法。

答案 1 :(得分:1)

我在博客上写了something。您还可以在GitHub上找到示例。

解决方案的解释时间很长,但基本上我使用带有Require.JS的填充程序来定义代表我要加载的Javascript库的模块名称。然后我创建一个具有相同名称的TypeScript文件,以使TypeScript编译器生成可以使用我想要的JS库的Javascript代码。没有这样的意义,但请阅读帖子,我认为这将更有意义。