And*_*rov 8 typescript flowtype
我希望这段代码能像在TypeScript中一样在Flow中输入check :
var onClick : (() => void) | (() => boolean);
onClick = () => { return true; }
Run Code Online (Sandbox Code Playgroud)
相反,我收到此错误:
4: onClick = () => { return true; }
^ function. Could not decide which case to select
3: var onClick : (() => void) | (() => boolean);
^ union type
Run Code Online (Sandbox Code Playgroud)
这个设计决定是否有通用名称,背后的原因是什么?
是否可以要求Flow检查器从return语句推断函数的返回类型?
您需要提供显式强制转换,例如:
type FuncV = () => void;
type FuncB = () => boolean;
var onClick : FuncV | FuncB;
onClick = (() => { return true; }: FuncB);
Run Code Online (Sandbox Code Playgroud)
或者使用存在类型,例如:
type Func<T: (void | string)> = () => T;
var f: Func<*>;
f = () => { return "hello"; };
var msg = f() + " world!"; // type checks against return value above
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |