2011-02-08 18 views
6

¿Alguien sabe si hay una buena herramienta para analizar el código JavaScript y detectar los errores de tipo? Sé que JavaScript está tipeado de manera débil y dinámica, pero sería muy bueno si pudiera tener un programa que verificara que todos mis accesos de campo son razonables y que no trato de tratar un número como una cadena, por ejemplo. Soy consciente de que hay casos de uso válidos en JavaScript donde agregar y eliminar campos o convertir entre diferentes tipos es válido y esperado, pero algunos errores son tan evidentes que parece que podrían detectarse antes de que el script comenzara a ejecutarse.¿Tipo de verificador para JavaScript?

He oído hablar de JSLint, pero tengo entendido que se trata principalmente de una herramienta de estilo en lugar de un analizador semántico. Si estoy equivocado sobre esto, entonces solo decirme eso sería una respuesta válida a esta pregunta.

+0

Pregunta interesante, pero no estoy seguro de si un verificador estático es capaz de determinar usos inadecuados, teniendo en cuenta la frecuencia con la que las cualidades dinámicas de JS llegan a su límite. ¿Puedes dar ejemplos de algunos "errores evidentes"? –

+0

Por ejemplo, tengo un objeto creado con 'new MyClass()'. Esta clase tiene solo un campo llamado 'valor'. Luego, tengo alguna otra parte del código, intento leer el campo 'notAValue', que no está definido en' MyClass'. – templatetypedef

Respuesta

1

No es posible hacer un análisis estático con confianza usando cualquier herramienta automatizada debido a la naturaleza dinámica de JavaScript. Sin embargo, una herramienta que hace un gran trabajo es el WebStorm de Jetbrain y sus otros IDEs que tienen soporte de JavaScript.

0

Una otra opción - https://github.com/yarax/typelint

Es un plugin EsLint, eso tipo de comprobación basado en anotaciones jsdoc.

Además, admite su propia extensión para usar el estado de Redux o los esquemas de Swagger (básicamente cualquier esquema de JSON) para la verificación de tipo. Por lo tanto, no es necesario que describa tipos de compuestos complejos por su cuenta.

0

Hay un nuevo tipo de comprobador de Facebook - flow.

Y tiene un plugin que convertiría sus anotaciones JSDoc en anotaciones de flujo.

Cuestiones relacionadas