我对 Javascript、NodeJS 和——显然——TypeScript 还很陌生。我想尝试一下编译器服务 src/services (Windows) 提供智能感知等。对于编辑来说。

据我所知,我需要能够 require NodeJS 服务器中的 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 节)。有一些样本(例如imageboard)可供下载,如果您有兴趣,可以执行此操作。

其他提示

您必须将模块定义为 export module, , 不是你的 module 然后编译它 --m amd 或者 --module amd.

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top