无论参数如何,tsC语言 -module 始终生成相同的输出



我对Javascript,NodeJS和--显然-TypeScript很陌生。我想尝试使用src/services(Windows)中的编译器服务,为编辑器提供智能感知等。

据我所知,我需要能够在 NodeJS 服务器中require TypeScript 服务代码,并从编辑器中与之通信。我找不到任何特定于 NodeJS 的 TypeScript 服务代码,所以我想我必须用 --module amd 编译服务代码才能通过 RequireJS 将其提供给 NodeJS。

如果上述是正确的,我尝试编译服务代码--module amd产生与使用默认模块类型完全相同的结果(见下文)。

$ tsc.cmd --module amd --out amd.js .languageService.ts
$ tsc.cmd --out comm.js .languageService.ts
$ diff.exe .amd.js .comm.js
$

诚然,这令人困惑,但languageService.ts中的代码不在AMD/RequireJS定义的"模块"中。

该规范将module块内的东西称为"内部模块"。这就是你在languageService.ts中看到的。您可以将它们视为公开顶级名称的容器或单例(查看简单内部模块的代码生成可以很好地阐明这一点)。您可以像使用常规顶级对象一样使用这些对象,而无需任何模块加载器。

生成用于require外部模块(由规范命名)是通过将 export 指令放在 .ts 文件中的顶级声明上来完成的(请参阅规范第 9.2.1 节)。如果您有兴趣,有一些示例(例如图像板)可供下载。

你必须将模块定义为 export module ,而不是你的module,然后用 --m amd--module amd 编译它。

我花了几个小时才意识到:)

相关内容

  • 没有找到相关文章

最新更新