J'utilise Flow 0.30.0. J'ai une fonction qui renvoie une promesse:
function process(callback:Function):Promise {
return new Promise((r,re) => callback)
}
Flow soulève une erreur, se plaignant:
function process(callback:Function):Promise {
^^^^^^^ Promise. Application of polymorphic type needs <list of 1 argument>. (Can use `*` for inferrable ones)
Cela fonctionne dans Try Flow , mais pas localement. Des idées sur la question?
Selon le changelog de flux, une modification a été introduite dans la version 0.28.0 qui rend les arguments de type explicites. Définition explicite du type de retour sur Promise<any>
devrait résoudre votre problème.
Vous pouvez également définir l'indicateur suivant sur false, bien qu'il s'agisse d'un indicateur temporaire qui sera supprimé à l'avenir
experimental.strict_type_args=false
https://github.com/facebook/flow/blob/master/Changelog.md#v028
Je suppose que cela a été compris il y a quelque temps et la bonne réponse à ce qui se passait était qu'il s'agissait d'une incompatibilité de versions entre l'interpréteur de flux local et l'interpréteur de flux en ligne.
Cependant, comme cette question apparaît en haut des résultats de recherche lorsque vous recherchez comment annoter des promesses, il convient probablement de mentionner que la solution pour ces types de situations consiste à spécifier le type de flux que la promesse résout en tant que support d'angle de flux paramètre.
Dans ce cas, l'ajout d'un "quelconque" à l'annotation Promise fait taire l'erreur, par exemple ...
function process(callback:Function):Promise<any> {
return new Promise((r,re) => callback)
}
Dans la documentation sur ici aussi pour un autre exemple