2017-04-05 53 views
0

閱讀本文檔:https://flow.org/en/docs/types/unions/#toc-disjoint-unions-with-exact-types有確切的類型,不交併作出反應成分道具

...我預計到了陣營組件工作,但我得到一個錯誤。

這裏是一個簡化的情況:

https://flow.org/try/#0C4TwDgpgBAglC8UDeAfKBDAXFYAnArtCgL4DcAUKJFAEILJoBG2ehUJFl40MuA5gGd6cNDU4BjAPYA7AcCgBhegAp0-Adl6CAlAgB8yYuXILlSLDgIRi2igB4l6eElbWoAej3kgA

我不明白爲什麼叫C作爲與自變量的函數不會導致錯誤,但爲什麼不創建一個陣營組件與道具得到一個錯誤?

回答

0

這實際上只是爲組件的道具使用確切類型的問題。有開放的an issueIf 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