Comprobador de tipos y superconjunto de JavaScript
- Comentario: "Medium" no es una fuente confiable. Xegma (discusión) 08:51 22 mar 2024 (UTC)
Flow es un verificador de tipos de código abierto popular para código Javascript que es creado y mantenido por Meta Platforms . [3] [2] [4] [5] Se utiliza como una alternativa para TypeScript y ofrece un análisis más estricto, pero tiene un ecosistema más pequeño. [6] Durante un tiempo, React recomendó Flow como el verificador de tipos estáticos para usar con JSX, aunque React ya no proporciona orientación sobre la verificación de tipos luego del reciente rediseño de su sitio web. [7] Según las estadísticas proporcionadas por el gráfico de dependencias de GitHub, más de 170 mil repositorios diferentes alojados en GitHub dependen de Flow. [8] En comparación, TypeScript se usa en más de 15 millones de repositorios. [9]
Características
Admite la escritura de tipos para bibliotecas en el .flow
formato , que es algo similar al .d.ts
formato; sin embargo, utiliza tipos de Flow en lugar de tipos de TypeScript, lo que genera algunas diferencias. [10] Además, admite la verificación de los tipos de objetos utilizando tipos de objetos exactos, [11] que ha sido el valor predeterminado en Flow desde v0.202. [12] Uno de los principales puntos débiles de TypeScript es su falta de soporte de tipos de objetos exactos.
Una de las principales ventajas de Flow es que fuerza el uso de anotaciones de tipo explícitas a nivel de módulo, lo que evita errores al decidir los cambios en SemVer . Además, si bien es más lento, [13] [14] es considerablemente más completo.
Historia
- Flow se anunció por primera vez en 2014 y, en ese momento, fue de código abierto. [3]
- En febrero de 2015, Flow introdujo la conversión de tipos y agregó soporte para definir tipos destinados a usarse fuera del módulo actual. [15] [16] En comparación, TypeScript agregó soporte para
import type
declaraciones a principios de 2020. [17] - Más tarde, en febrero de 2015, Flow introdujo los comentarios de Flow, que permiten escribir anotaciones de tipo como comentarios en lugar de como una extensión de sintaxis. [18] Ahora son uno de los usos más comunes de Flow; en comparación, TypeScript se usa mucho más comúnmente con su extensión de sintaxis.
- En 2016, Flow agregó soporte para Windows . [19]
- En 2020, se completó una importante reelaboración de la arquitectura de Flow, que ofrece una verificación de tipos hasta 6 veces más rápida. [20] [21]
- En 2021, Facebook anunció que, a partir de ahora, Flow priorizaría a los usuarios internos de Facebook, aunque seguiría siendo de código abierto. [21] [22]
- En 2023, Flow anunció que había completado la transición para activar los tipos de objetos exactos de forma predeterminada. [12]
Referencias
- ^ "facebook/flow: agrega tipado estático a JavaScript para mejorar la productividad de los desarrolladores y la calidad del código". GitHub . Consultado el 17 de enero de 2023 .
- ^ ab "Flow - Comprobador de tipos estáticos de JavaScript". 26 de agosto de 2021. Consultado el 18 de enero de 2024 .
- ^ ab Chaudhuri, Avik; Hosmer, Basil; Levi, Gabriel (18 de noviembre de 2014). "Flow, un nuevo verificador de tipos estáticos para JavaScript". Ingeniería en Meta . Consultado el 17 de enero de 2023 .
- ^ Jackson, Joab. "Flow de Facebook podría ayudar a los programadores de JavaScript a detectar errores difíciles de detectar". CIO New Zealand . Consultado el 14 de febrero de 2024 .
- ^ "ELI5: Flow - Comprobador de tipos estáticos para JavaScript". developer.facebook.com . Consultado el 14 de febrero de 2024 .
- ^ John, Kapantzakis. "Flow vs TypeScript: ¿Cuál es más adecuado para su próximo proyecto? | Scalable Path". Scalable Path . Consultado el 14 de febrero de 2024 .
- ^ "Comprobación de tipos estáticos" . Consultado el 18 de enero de 2023 .
- ^ "Dependientes de la red • facebook/flow". GitHub .
- ^ "Dependientes de la red • microsoft/TypeScript". GitHub .
- ^ "Flow: un verificador de tipos estáticos para JavaScript | Flow" . Consultado el 11 de enero de 2023 .
- ^ "Objetos | Flujo" . Consultado el 18 de enero de 2023 .
- ^ ab Zahariev, George (16 de febrero de 2023). «Tipos de objetos exactos por defecto, por defecto». Medium . Consultado el 11 de enero de 2023 .
- ^ Brzóska, Bazyli (2 de febrero de 2024), "niieani/typescript-vs-flowtype", GitHub , consultado el 14 de febrero de 2024
- ^ "Uso de Flow en WebStorm | El blog de WebStorm". El blog de JetBrains . 2016-11-21 . Consultado el 2024-02-14 .
- ^ Basil, Hosmer (18 de febrero de 2015). «Anuncio de encasillamientos» . Consultado el 18 de enero de 2023 .
- ^ Morrison, Jeff (18 de febrero de 2015). «Anuncio del tipo de importación» . Consultado el 18 de enero de 2023 .
- ^ Rosenwasser, Daniel (20 de febrero de 2020). «Anuncio de TypeScript 3.8» . Consultado el 18 de enero de 2023 .
- ^ Levi, Gabe (20 de febrero de 2015). «Anuncio de comentarios de Flow» . Consultado el 18 de enero de 2023 .
- ^ Levi, Gabe (1 de agosto de 2016). "¡El soporte de Windows ya está aquí!" . Consultado el 18 de enero de 2023 .
- ^ Vekris, Panagiotis (18 de mayo de 2020). "Types-First: A Scalable New Architecture for Flow". Medium . Consultado el 18 de enero de 2023 .
- ^ ab Bruno, Couriol (23 de septiembre de 2021). "Flow Type Checker ya no es solo JavaScript con tipos, centros de las necesidades de Facebook" . Consultado el 18 de enero de 2023 .
- ^ Vekris, Panagiotis (25 de mayo de 2021). "Claridad sobre la dirección de Flow y la participación del código abierto". Medium . Consultado el 18 de enero de 2023 .