type react props docs component javascript types flowtype

javascript - react - ¿Cuál es el uso del tipo de asterisco(*) en Flow y cuál es su equivalente en TypeScript?



flow type string (3)

El asterisco * en Flujo le indica que infiera el tipo, que ya fue respondido por

Además, Typescript no tiene un equivalente directo para el asterisco y, por lo tanto, no se le puede decir que infiera un tipo. Sin embargo, como Flow, deduce tipos automáticamente en algunos casos específicos. Documentación de Inferencia de Tipo TypeScript , Ejemplos de Inferencia de Tipo

Echa un vistazo a las unique features en esta página: Diferencias entre Flow y TypeScript

En primer lugar, estoy más familiarizado con TypeScript. El flujo es muy similar al TS en muchos aspectos, pero recientemente me topé con un tipo de asterisco (*). Al principio, pensé que era un sinónimo de "cualquiera", pero ahora, después de leer algunas de las notas de lanzamiento de Flow, veo que no lo es. Revisé todos los documentos oficiales y no pude encontrar ningún uso de "*".

Entonces, ¿qué es y cuándo usarlo? Pero también, ¿cuál sería un equivalente directo de eso en TypeScript?



Solo le dice a Flow que deduzca un parámetro de tipo, en lugar de hacerlo escribirlo explícitamente:

function foo(): Array<*> { return [5]; } // Flow issues an error: // 2: return [5]; // ^ number. This type is incompatible with // 10: (foo(): Array<string>); // ^ string (foo(): Array<string>);

( prueba de flujo )

Es diferente de any : any es de tipo inseguro, por lo que si reemplaza * con any en este ejemplo, Flow no le dará ningún error. Podría reemplazarlo con un number y Flow le daría un error similar.