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。错误出现在上面代码的第三个字符串中(选中=…)