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?
No hay suficiente reputación para publicar un comentario.
Actualización en mecanografiado 2.8:
https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-in-conditional-types
por lo que puede tener T<*>
(flujo) en escritura de letra T<infer U>
. Soy nuevo en mecanografiar, corríjame si estoy equivocado.
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.