Si estuviéramos escribiendo como foo equals true, habríamos escrito el literal booleano en lugar del numérico, o cadenas o lo que sea, solo para que entiendas. Si bien es bastante fácil entender este árbol, supongo que este, es un poco más desafiante de manejar.
Al leer un árbol de sintaxis abstracta, llamamos a este proceso atravesar el árbol. Es bastante complejo en, por supuesto, programas complejos. Pero afortunadamente, muchas herramientas como Babel, ESLint, Pretier, nos proporcionan una interfaz agradable para atravesar el árbol que se llama el patrón visitante.
En ese caso, con Babel, estamos diciendo, ok, querido Babel, por favor, dame todas las declaraciones de variables o los identificadores, todos los literales numéricos, y simplemente los imprimimos en la consola. Una vez que obtenemos, por ejemplo, todas las declaraciones de variables, podemos comenzar a transformarlas. Así que ese es el caso. Decimos, ok, por favor, dame todas las declaraciones de variables dentro de nuestro código. Y si el tipo de variable es var, simplemente transfórmalo en let, lo cual no es sabio. No estoy sugiriendo que lo hagas, pero es un ejemplo muy sencillo. Así que eso nos facilita las cosas. Dicho esto, a la izquierda, tenemos nuestra entrada var foo equals 10. Y a la derecha, tenemos nuestra salida let foo equals 10. Como puedes ver, en la línea dos, tenemos constante y la dejamos intacta porque no es una variable, es una constante. Como puedes ver en el código, no estamos diciendo si es constante, por favor, cámbialo a let. Así que no estamos haciendo eso. Como dije, el mismo concepto se aplica a otras herramientas, como Prettier, ESLint, Babel, GIS, CodeShift. Y los veremos en detalle ahora mismo.
Con ESLint, tenemos un enfoque similar. Decimos, ok, por favor, ESLint, dame todos los literales de plantilla que puedas encontrar en mi código. Y si encuentro uno, puedo informar a ESLint un error, como por favor, no uses literales de plantilla. Y también puedo proporcionar una solución para ello. Pero en ese caso, si tengo una expresión dentro de mis literales de plantilla, puedo decir, ok, soy demasiado perezoso para eso. Así que solo estoy devolviendo, no estoy corrigiendo esto. Pero si no tengo una expresión, puedo decir, ok, así que no tengo expresión. No tengo ninguna expresión. Así que no hay data dinámica dentro de mis literales de plantilla. Así que simplemente cambia los literales por comillas dobles. Eso es lo que estamos haciendo ahora.
Comments