8

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

有没有办法让 TypeScriptrequire()在我使用它时生成对库的调用?如果我不使用 AMD/requirejs,我可以require手动调用,但我想让它与 AMD 一起工作。

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

更新:我打开了一个新问题,澄清了我的确切情况。由于我没有提供所有必要的细节,因此我想对我最初的问题的答案表示赞赏。

4

2 回答 2

7

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

MyLib.ts

export function foo() { return 'bar' }

我的项目

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

用“--module amd”编译它,你会得到正确的模块和为你生成的语法。

于 2012-10-19T23:35:33.230 回答
1

我在我的博客上写了一些关于它的东西。您还可以在GitHub 上找到示例。

该解决方案的解释相当长,但基本上我使用带有 Require.JS 的垫片来定义代表我要加载的 Javascript 库的模块名称。然后我创建一个同名的 TypeScript 文件,让 TypeScript 编译器生成可以使用我想要的 JS 库的 Javascript 代码。像这样真的没有意义,但请阅读帖子,我认为它会更有意义。

于 2012-10-20T23:17:14.397 回答