3

我有一个简单的 hello world 文件test.ts,其内容如下:

export class Hello {
  constructor() {
    console.log("hello world!");
  }
}

当我运行命令tsc test.ts --module amd --out bla.js时,test.js会创建一个包含正确内容的文件,但bla.js也会创建一个空文件。

我希望test.tsbla.js. 是什么导致了这种行为?

4

1 回答 1

4

--out参数tsc告诉_

连接并将输出发送到单个文件。

...但是您正在定义一个模块。模块并不意味着在连接的文件中。tsc生成所有非模块代码的连接文件(你没有,所以是bla.js空的)和test.js包含你的test模块的模块文件()也是如此。

您可以通过.ts在命令行中添加第二个文件来证明这一点,该文件没有定义模块。您将在 中找到该代码的转译版本bla.js,并在 中找到您的模块test.js。如果您添加另一个.ts定义第二个模块的文件,您会在另一个.js文件中找到它,并使用其源.ts文件的名称。

例如,假设你有

  • Module1.ts定义一个模块
  • Module2.ts定义另一个模块
  • Stuff.ts定义非模块的东西
  • MoreStuff.ts定义更多非模块的东西

...你这样做了:

tsc Module1.ts Module2.ts Stuff.ts MoreStuff.ts --out combine.js --module amd

你最终会得到:

  • Module1.js包含为Module1.
  • Module2.js包含为Module2.
  • combined.js包含从Stuff.tsMoreStuff.ts
于 2015-12-08T11:54:10.357 回答