tutorial online objects initialize inicializar convertir array javascript typescript compiler-construction

javascript - online - typescript list of objects



¿Cómo se escribe TypeScript 100.0% en TypeScript? (2)

El mecanografiado es autohospedado y mantiene una versión Last-Known-Good (LKG) de sí mismo para compilar la próxima versión. Actualmente (30/08/2016) esa versión está en el directorio lib .

En el repositorio TypeScript en GitHub y de acuerdo con GitHub, el repositorio solo incluía 100.0% TypeScript (archivos .ts)

¿Como funciona? ¿y cómo TypeScript puede compilarse a JavaScript solo?


Esto se llama arranque del compilador y es común por una serie de razones, entre las cuales el lenguaje que está escribiendo es a menudo el más adecuado para comprender los conceptos que está implementando en el idioma que está escribiendo ...

Si lees el artículo, la mayoría de los idiomas principales tienen compiladores de alojamiento propio (C, C ++). Hacerlo significa que está ejecutando una gran cantidad de código a través de su nuevo compilador, que es una buena prueba de funcionalidad. En el caso habitual, está escribiendo un compilador porque desea un nuevo idioma con algún beneficio sobre su idioma actual, por lo que tener la ventaja de aprovechar esos beneficios mientras escribe el compilador tiene mucho sentido.

El primer paso tendrá que estar escrito en un idioma existente, pero una vez que tenga un compilador, puede usarlo para compilar la próxima revisión y así sucesivamente. Obviamente, esto limita su compilador a usar solo características de la revisión n-1 , pero dado que usted controla el compilador, eso debería ser un problema menor. Citando Wikipedia:

Las partes principales del compilador C ++ clang se escribieron en un subconjunto de C ++ que puede compilarse tanto con g ++ como con Microsoft Visual C ++.

Dado que TypeScript es un superconjunto de JavaScript, el compilador podría (en teoría) escribirse en la sintaxis compartida y compilarse en cualquiera de ellos. No creo que ese sea el caso aquí, pero la relación le da un buen lenguaje inicial para el compilador inicial.