不兼容的类型错误 facebook 流程

incompatible type error facebook flow

我有一个变量,它可以是一个对象数组、一个数字数组、一个嵌套的对象数组或一个嵌套的数字数组。我的函数依次处理这些情况中的每一个,但我试图使用 Facebook 流使我的代码类型安全,但我遇到了不兼容的类型错误。

type Data = number[] | {}[] | Array<{}[]> | Array<number[]>

function parseData(data = Data) {
    ...
}

当我运行流动时我得到

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                            ^^ object type

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                                                       ^^^^^^^^ array type

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                            ^^ object type. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                                         ^^^^ array type. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number

build/js/helpers.js:2
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                                                       ^^^^^^^^ array type. This type is incompatible with
  2: type Data = number[] | {}[] | Array<{}[]> | Array<number[]>
                 ^^^^^^ number

我理解是说数字数组的变量不能是对象数组,也不能是数组的数组,但我不知道如何输入这个变量。

您在参数中使用了错误的类型。所以这一行:

function parseData(data = Data) {

应替换为此行:

function parseData(data: Data) {

如果使用赋值运算符,基本上就是为参数定义了一个默认值。因此,您需要使用冒号字符而不是赋值运算符来标记特定类型的参数。

至少我在在线流量检查器中没有再出现错误here