TypeScript (如下簡稱 TS)是一個很是強大的語言,其編譯器源碼超過 10000 行。git
源碼在 Github 能夠找到:https://github.com/Microsoft/TypeScript/tree/master/src/compilergithub
TS 源碼大量應用了只讀對象來提高解析性能。只讀對象即一個普通對象,但沒法修改其內部任意屬性,若是須要修改,則必須建立一個新的副本。緩存
這個設計使得程序能夠只在須要的時候再處理對象,而且把處理的結果緩存起來。由於對象是隻讀的,因此緩存的數據始終是正確的,不會由於對象更改致使緩存失效。函數
通用的編譯器都須要瞭解如下概念:性能
---國內研究編譯器的人很少,若是你以爲這篇文章有用,請經過評論告知,我將完善內容---設計