Javascript 如何在TypeScript中映射多个类型的数组?

Javascript 如何在TypeScript中映射多个类型的数组?,javascript,reactjs,typescript,ecmascript-6,Javascript,Reactjs,Typescript,Ecmascript 6,如果我有一个变量,它的类型是可以接受多种类型的数组 type myData = (RedType | BlueType)[]; //`const data` is of type myData 我正在用条件对类型执行手动检查,以便对变量数据执行一些逻辑 {data.map((element, index) => { if (isRed(element)) { return <Red data={element} key={index}

如果我有一个变量,它的类型是可以接受多种类型的数组

type myData = (RedType | BlueType)[];
//`const data` is of type myData
我正在用条件对类型执行手动检查,以便对变量数据执行一些逻辑

     {data.map((element, index) => {
        if (isRed(element)) {
          return <Red data={element} key={index} />;
        } else {
          return <Blue data={element} key={index} />;
        }
      })}
反之亦然


我将始终拥有多种类型的数组,我无法更改。

您可能希望您的
isRed()
函数成为一个数组。也就是说,将其签名更改为

declare function isRed(x: any): x is RedType;

您的代码应该开始编译时没有错误。希望有帮助;祝你好运

您正在寻找或键入guards。如果不在类型中声明一个
种类:“red”
,是否就无法执行此操作
declare function isRed(x: any): x is RedType;