在基于TypeScript的GitHub存储库中,根据GitHub,存储库只包含100.0%的TypeScript (.ts文件)

它怎麽工作?那么TypeScript如何能够自己编译成JavaScript呢?
发布于 2016-08-30 19:33:18
这被称为编译器引导,并且由于许多原因而常见,尤其是您正在编写的语言通常是理解您正在编写的语言中实现的概念的最合适的语言。
如果您看一看这篇文章,大多数主要语言都有自托管编译器(C,C++)。这样做意味着您正在通过新编译器运行大量代码,这是对功能的一个很好的测试。在通常情况下,编写编译器是因为您想要一种比当前语言更有好处的新语言,因此在编写编译器时能够利用这些好处是很有意义的。
第一遍必须用现有语言编写,但是一旦有了编译器,就可以使用它来编译下一个版本等等。显然,这限制了编译器仅使用来自n-1修订版的特性,但由于您控制了编译器,这应该是一个小问题。引用维基百科的话:
C++编译器clang的主要部分是在C++的一个子集中编写的,该子集可以由g++和MicrosoftVisualC++编译。
因为TypeScript是JavaScript的超集,所以编译器(理论上)可以用共享语法编写,并在任何一种语法下编译。我不相信这里是这样的,但是这种关系确实为初始编译器提供了一个很好的起点语言。
发布于 2020-03-28 11:51:44
我只想补充一些我觉得有趣的东西。
在git中,您可以有一个名为.gitattributes的文件。Github有一个名为语言学家的项目,它可以为每个存储库中的语言细节部分使用该文件。在the中有一个.gitattributes文件,其内容如下:
*.js linguist-language=TypeScript
* -text您可以分叉类型记录回购,删除该文件,提交到github,并等待一段时间,而他们的存储库分析工作完成和语言图表将发生变化。

发布于 2016-08-30 19:34:39
类型记录是自我托管的,并维护自己的LKG版本来编译下一个版本.目前(30/08/2016)该版本在lib目录中。
https://stackoverflow.com/questions/39235612
复制相似问题