1

我正在尝试使用带有模块的打字稿作为具有文件夹结构的命名空间

/ns1/ns2/class1.ts
          class2.ts
usage.ts

usage.ts 可以在哪里做:

new ns1.ns2.class1();
new ns1.ns2.class2();

如果这是纯 js,我会用 requirejs 来做这一切。

  1. 创建没有命名空间的模块
  2. 参考模块使用
  3. 使用 R.js 将所需对象压缩到一个文件中

我发现

  • 在 typescript 上设置 AMD 模式会生成模块,但不能很好地导出它们,因为每个模块都必须通过 import 语句导入,因为 ns 不再是全局的

我的问题:

由于您不会使用 r.js,因此压缩 300 个生成的 js 文件的正确方法是什么?

有没有人用打字稿找到更好的方法来:

  • 做一个 require('ns1',function(ns1){...}) 这样我就可以做 new ns1.ns2.class1(),new ns1.ns2.class2()
  • 将所有类保存在它们自己的文件和这些命名空间中

似乎您可以在命名空间中拥有模块或全局的所有东西......而不是两者兼而有之。

4

1 回答 1

2

如果您有两个使用 ///reference 相互引用的 typescript 文件,并且您使用 --out 编译器标志进行编译,则 typescript 将为您合并两个(或 n 个)文件

于 2013-07-11T13:59:42.683 回答