阅读本文档:https://flow.org/en/docs/types/unions/#toc-disjoint-unions-with-exact-types
...我希望能使用React组件,但是我收到错误。
这是一个简化的案例:
我明白为什么将C
作为函数调用该参数并不会导致错误,但为什么用这些道具创建一个React组件会出错呢?
答案 0 :(得分:0)
这实际上只是对组件的道具使用精确类型的问题。有an issue开放。 If you take away the union,只有一个确切的类型,它会为您提供更有用的错误消息。
/* @flow */
type A = {| a: true |};
type Args = A;
const C = (args: Args) => null;
<C a={true} />;
9: <C a={true} />;
^ props of React element `C`. Inexact type is incompatible with exact type
7: const C = (args: Args) => null;
^ exact type: object type