flowtype jsx元素,元素< *>的奇怪错误(星号)

时间:2017-08-30 09:20:21

标签: reactjs react-native visual-studio-code flowtype

如下面的代码,我使用Element<*>作为 jsx元素的类型。

type Prop = {
    style?: StyleSheet.styles | Array<StyleSheet.styles>;
    face: Element<*>;

    disabled: boolean;
    anotherProp: any;
}

flowtype 编译器提示使用Element<*>(星号)。

enter image description here

但是,Element<*>之后定义的每种类型都会丢失。

enter image description here

如果我将代码更改为Element<any>,那么我的类型会正确显示。

enter image description here

但是any类型不是我真正需要的。我该怎么做才能使它有效?

我使用flowtype with vscode,但似乎错误来自flowtype编译器(或来自flowtype vscode plugin),因此可能与 vscode 本身无关。

1 个答案:

答案 0 :(得分:1)

编辑器集成目前存在导致某些类型的问题,尤其是使用*的类型,尽管如此,请注意该类型实际上是正确的并且将根据您编写的内容进行检查,即使它在IDE中打印错误

例如,此代码失败并出现类型错误,而如果实际使用any类型则会失败:

type thingy = {
  style: number,
  stuff: Array<*>,
  things: string
}

let t: thingy = {
  style: 19,
  stuff: 2, 
  things: "what"
}