template español es6 ecmascript definicion caracteristicas javascript ecmascript-6 static-typing ecmascript-7

javascript - español - ¿Hay soporte para escritura estática en ECMAScript 6 o 7?



template string javascript (5)

Aunque no es un ES6 puro, AtScript de Google extiende el ES6 con anotaciones de tipo y compila en un código ES6 válido una vez que el compilador se hace público: el cebador de AtScript

¿Existe algún soporte para la escritura estática en ECMAScript 6? ¿Qué hay de ECMAScript 7?


Como opción, puede echar un vistazo al complemento de EsLint https://github.com/yarax/typelint

No es un control estático, sino opcional. La ventaja de TypeLint es que utiliza los datos de la aplicación ya existentes para crear y utilizar tipos de forma automática, a diferencia de, por ejemplo, TypeScript o Flow, donde debe describir los tipos complejos por sí mismo.


No, no hay soporte para la escritura estática en ningún ECMAScript 6 (ES2015).

En cuanto a ECMAScript 7 (ES2016), no hay ninguna propuesta en ninguna de las etapas 1, 2, 3, 4 o etapa 0 para la tipificación estática.

He visto algunas propuestas / ideas para tipificación estática aparecer en la lista de correo de es-discuss Discuss, pero ninguna de estas ha sido propuesta para ES7 (ES2016).

Si desea escribir estático en este momento, probablemente esté buscando lo mejor en TypeScript o Flow.


No.

Pero en la Wikipage de ECMA-Script hay un párrafo sobre los cambios en ECMA-Script 7:

La séptima edición se encuentra en una etapa muy temprana de desarrollo, pero su objetivo es continuar con los temas de reforma del lenguaje, aislamiento del código, control de efectos y habilitación de biblioteca / herramienta desde ES6. Las nuevas características propuestas incluyen promesas / concurrencia, mejoras numéricas y matemáticas, protecciones y marcas registradas (una alternativa a la escritura estática) , sobrecarga de operadores, tipos de valores (objetos de primera clase parecidos a números), nuevas estructuras de registros (registros, tuplas y matrices tipadas) , coincidencia de patrones y rasgos.

Lo que te puede interesar.


Aunque esto no es parte de la especificación de ES6, Closure Compiler aplica las anotaciones de tipo de argumento JSDoc en el código JavaScript cuando usa su nivel de compilación Avanzado. Las anotaciones de tipo se especifican mediante comentarios, por lo que se ignoran en el desarrollo, pero cuando compila su aplicación para un lanzamiento de producción, una falta de coincidencia de tipo dará como resultado una advertencia del compilador u, opcionalmente, un error del compilador.

Un ejemplo de una anotación de tipo JSDoc forzada:

/** * @param {string} stringValue * @return {number} */ function toInt(stringValue) { return parseInt(stringValue, 10); } var val = toInt("10"); // Good var val = toInt(false); // NaN in development, but throws an error (optional) // or prints a warning (default) at build time

Como beneficio adicional, JSDoc puede crear documentación de API usando esta misma sintaxis. Así que también es útil si documenta su código.

Pero una advertencia: para que Closure Compiler haga su magia de optimización avanzada, cada ingeniero en su proyecto tiene que seguir ciertas convenciones de codificación estrictas. El compilador no puede imponer tipos a menos que pueda determinar de manera confiable lo que está haciendo su código, y eso significa renunciar a parte de la sintaxis dinámica y sin sentido de JavaScript. Si no los sigues, los errores pueden aparecer en tu aplicación y pueden ser muy difíciles de diagnosticar después del hecho. La mayoría de los marcos y bibliotecas de JavaScript populares no los siguen, aunque a veces se puede evitar el uso de la función externa de Compilador. (jQuery es compatible usando externos, por ejemplo.)

Así que si lo usa, asegúrese de probar su aplicación a fondo. Personalmente, ni siquiera consideraría el uso de esta función en una aplicación web a menos que tenga un bot de compilación Jenkins y una cobertura de prueba casi 100% automatizada que pueda ejecutarse contra su código una vez que se haya optimizado. Eso es mucho trabajo y no es para todos; Me tomó meses lograr que uno de mis proyectos llegara a ese nivel. Pero personalmente, creo que vale la pena el esfuerzo.

Para obtener más información, consulte Compilación avanzada y Externos y Anotación de JavaScript para el compilador de cierre .