在TypeScript repository on GitHub根据 GitHub 的说法,存储库仅包含 100.0% TypeScript (.ts 文件)
它是如何工作的?以及 TypeScript 如何自行将自身编译为 JavaScript?
最佳答案
这叫做 compiler bootstrapping并且由于多种原因而很常见,其中最重要的是您正在编写的语言通常是最适合理解您正在使用您正在编写的语言实现的概念的语言...
如果您看一下这篇文章,大多数主要语言都有自托管编译器(C、C++)。这样做意味着您正在通过新编译器运行大量代码,这是一个很好的功能测试。在通常情况下,您编写编译器是因为您想要一种比当前语言有一些好处的新语言,因此在编写编译器时能够利用这些好处是很有意义的。
第一遍必须用现有的语言编写,但是一旦有了编译器,就可以用它来编译下一个修订版,依此类推。显然,这将您的编译器限制为仅使用 n-1
修订版中的功能,但由于您控制编译器,这应该是一个小问题。引用维基百科:
The main parts of the C++ compiler clang were written in a subset of C++ that can be compiled by both g++ and Microsoft Visual C++.
由于 TypeScript 是 JavaScript 的超集,因此编译器(理论上)可以用共享语法编写并在任一语法下编译。我不相信这里是这种情况,但这种关系确实为您提供了初始编译器的良好起始语言。
关于javascript - TypeScript 100.0% 是如何用 TypeScript 编写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235612/