[英]How to use Flow with async/await, promises and thenables?
流量可以做聪明的东西,像这样 :
type MyMap = WeakMap<number, string>;
const obj: MyMap = new WeakMap();
obj.set(123, 'bar'); // ok
obj.set('not', 'bar'); // flow error!
但是promises,thatables和async / await呢?
我希望有可能做这样的事情:
type AsyncMultiplier = (number) => Thenable<number>;
const myTransform: AsyncMultiplier = async input => input * 2;
(async () => {
(await myTransform(2)) * 5; // should be ok
// forgetting to await the result:
myTransform(2) * 5; // should give a type error
})();
有没有办法让Flow了解await
,thenables等的语义?
Flow了解async
/ await
和Promise
s。 有没有内置类型Thenable
虽然你可以定义自己的。
无论如何,在你的例子中,只需用Promise
替换Thenable
,你就会得到预期的错误。 请注意,如果您尝试对示例进行类型检查,则会收到以下错误:
1: type AsyncMultiplier = (number) => Thenable<number>;
^ identifier `Thenable`. Could not resolve name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.