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 在我的例子中,为什么TS会给出以下错误:类型为';编号';不可分配给类型为';从不';?_Reactjs_Typescript - Fatal编程技术网

Reactjs 在我的例子中,为什么TS会给出以下错误:类型为';编号';不可分配给类型为';从不';?

Reactjs 在我的例子中,为什么TS会给出以下错误:类型为';编号';不可分配给类型为';从不';?,reactjs,typescript,Reactjs,Typescript,我有以下代码: <CriterionCheckbox key={exp.value} checked={expandedFilters.experience.includes(exp.value)} title={exp.label} width='25%' onChange={() => handleExpandedFilter( exp.value, expandedFilters.experience as number[], 'experi

我有以下代码:

<CriterionCheckbox
  key={exp.value}
  checked={expandedFilters.experience.includes(exp.value)}
  title={exp.label}
  width='25%'
  onChange={() =>
  handleExpandedFilter(
  exp.value,
  expandedFilters.experience as number[],
  'experience',
    )
}
  />

手持ExpandedFilter(
exp.value,
expandedFilters.experience作为编号[],
“经验”,
)
}
/>
我还有这个类型,它是用上面代码中的第三个字符串设置的

ExpandedFiltersState={[键:字符串]:字符串|矩[]|数[] }

我得到以下错误:

类型为“number”的参数不能分配给类型为的参数 “从来没有”


为什么??如何避免它?

考虑以下更简单的示例:

interface Moment {
  prop1: string;
}

const z:  Moment[] | number[] = [];
z.includes(1)

// TS2345: Argument of type '1' is not assignable to parameter of type 'Moment & number'.   
// Type '1' is not assignable to type 'Moment'.

// Signature of includes in this case:
Array<T>.includes(     
  searchElement: Moment & number,     
  fromIndex: number | undefined): boolean
expandedFilters.experience 
// type is string | Moment[] | number[]
Typescript再次尝试合并元素类型。 因为字符串不是数组,所以它是不可能的


因此,它推断searchElement的类型为never。

错误出现在上面代码的第三个字符串中(选中=…)