TypeScript (如下简称 TS)是一个很是强大的语言,其编译器源码超过 10000 行。git
源码在 Github 能够找到:https://github.com/Microsoft/TypeScript/tree/master/src/compilergithub
TS 源码大量应用了只读对象来提高解析性能。只读对象即一个普通对象,但没法修改其内部任意属性,若是须要修改,则必须建立一个新的副本。缓存
这个设计使得程序能够只在须要的时候再处理对象,而且把处理的结果缓存起来。由于对象是只读的,因此缓存的数据始终是正确的,不会由于对象更改致使缓存失效。函数
通用的编译器都须要了解如下概念:性能
---国内研究编译器的人很少,若是你以为这篇文章有用,请经过评论告知,我将完善内容---设计