Javascript 流量不';无法识别筛选不可变列表

Javascript 流量不';无法识别筛选不可变列表,javascript,immutable.js,flowtype,Javascript,Immutable.js,Flowtype,我试图在两个单独的列表中呈现一些带有标题的React组件。为此,我使用布尔值来确定哪个组件进入哪个列表 我的代码是这样的: const children1:List=List([ bool1&&, bool2&&, ]).filter(值=>value!==false); const children2:List=List([ !bool1&&, !bool2&&, ]).filter(值=>value!==false); 这工作完全正常,但Flow不理解,在创建列表后,我过滤掉了false值

我试图在两个单独的列表中呈现一些带有标题的React组件。为此,我使用布尔值来确定哪个组件进入哪个列表

我的代码是这样的:

const children1:List=List([
bool1&&,
bool2&&,
]).filter(值=>value!==false);
const children2:List=List([
!bool1&&,
!bool2&&,
]).filter(值=>value!==false);
这工作完全正常,但Flow不理解,在创建列表后,我过滤掉了
false
值,使其中只有
SomeComponent
值:

             bool1 && <SomeComponent key="0" />,
             ^^^^^ boolean. This type is incompatible with
         const children1: List<SomeComponent> = List([
                          ^^^^^^^^^^^^^^^^^^^ prototype
bool1&&,
^^^^^布尔型。此类型与不兼容
常量children1:List=List([
^^^^^^^^^^^^^^^^^^^原型
使用标准JavaScript数组时也会发生这种情况:

const children2:Array=[
!bool1&&,
!bool2&&,
].filter(值=>value!==false);

我可以做些什么来帮助Flow了解发生了什么?

对于这种特定情况,可能的解决方法不是在列表中使用布尔值,而是使用空值:

const children2:List=List([
!bool1?:null,
!bool2?:null,
].filter(布尔值));

当过滤不可变而不是内部数组时,它不起作用,但这似乎与有关。

对于这种特定情况,可能的解决方法不是在列表中使用布尔值,而是使用空值:

const children2:List=List([
!bool1?:null,
!bool2?:null,
].filter(布尔值));
当过滤不可变数组而不是内部数组时,它不起作用,但这似乎与