Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs “为什么会这样?”;此表达式不可调用……”;typescript和react js中的错误?_Reactjs_Typescript - Fatal编程技术网

Reactjs “为什么会这样?”;此表达式不可调用……”;typescript和react js中的错误?

Reactjs “为什么会这样?”;此表达式不可调用……”;typescript和react js中的错误?,reactjs,typescript,Reactjs,Typescript,我是打字新手。我不知道为什么会出错。 我的数据列表数组: const { data: CUData = { cu: [] as Array<CuType> }, } = useGetCUQuery(); let CUDataArray = CUData && CUData.cu? CUData.cu:null; const ownCompany = CUDataArray !== null && CUDataArray.fi

我是打字新手。我不知道为什么会出错。 我的数据列表数组:

  const {
    data: CUData = { cu: [] as Array<CuType> },
  } = useGetCUQuery();

  let CUDataArray = CUData && CUData.cu? CUData.cu:null;

  const ownCompany = CUDataArray !== null && CUDataArray.filter( 
      company => (company.isOwner && company.userType === 2) 
    );

  const assignedCompany = CUDataArray!== null && CUDataArray.filter( 
    company => (!company.isOwner && company.userType === 3) 
  );

const{
data:CUData={cu:[]作为数组},
}=useGetCUQuery();
让CUDataArray=CUData&&CUData.cu?CUData.cu:空;
const ownCompany=CUDataArray!==null&&CUDataArray.filter(
company=>(company.isOwner&&company.userType==2)
);
const assignedCompany=CUDataArray!==null&&CUDataArray.filter(
company=>(!company.isoowner&&company.userType==3)
);
错误是:

> This expression is not callable.
  Each member of the union type '{ <S extends CuType>(cb: (value: CuType, index: number, array: CuType[]) => value is S, thisArg?: any): S[]; (cb: (value: CuType, index: number, array: CuType[]) => unknown, thisArg?: any): CuType[]; } | { ...; }' has signatures, but none of those signatures are compatible with each other.  TS2349
>此表达式不可调用。
联合类型“{(cb:(值:CuType,索引:number,数组:CuType[])=>值为S,thisArg?:any):S[];(cb:(值:CuType,索引:number,数组:CuType[])=>未知,thisArg?:any):CuType[];}{…}”的每个成员都有签名,但这些签名都不兼容。TS2349

Typescript不确定数组
CUDataArray
的类型是
CuType[]
还是
unknown[]
。这种混淆的根源来自
useGetCUQuery()
函数的返回类型。如果你用这个功能编辑你的帖子,我可以看看

 const {
    data: CUData = { cu: [] as Array<CuType> },
  } = useGetCUQuery();

我刚刚发布了一个答案,但后来我又看了一遍错误消息,现在我不确定。您可以发布代码中包含
值为S
的部分吗?看起来某个地方有一个类型保护功能可能会引起麻烦。
type CUQueryVal = {
    data?: {
        cu?: Array<CuType>
    }
}

const queried: CUQueryVal = useGetCUQuery();

const { data: CUData = { cu: [] } } = queried; // 'as' is no longer needed