流数组类型在该类型的子集上失败

2023-12-03

我有一个在很多不同地方使用的函数,因此它的类型非常广泛:

export const stringToArrayFn = ( accessor?: | Function | string | boolean | Object | Array<Function | string | boolean | Object>, defaultAccessor?: Function, raw?: boolean )

当我调用它时:

stringToArrayFn(yAccessor)

yAccessor 输入为:

yAccessor?: Array<Function | string> | Function | string

流量投诉Cannot call stringToArrayFn with yAccessor bound to accessor because boolean [1] is incompatible with string [2] in array element.

我不明白,因为 yAccessor 中的数组是 stringToArrayFn 中定义的数组可能性的有效子集(前者仅允许函数或字符串数​​组,后者允许函数、字符串、布尔值和对象数组)。

如何处理这种类型的打字?


stringToArrayFn可以打电话accessor.push(true)并导致你的Array<Function | string>包含一个boolean,这会很糟糕。

Use $ReadOnlyArray代替Array在定义中stringToArrayFn如果它不打算改变提供的数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流数组类型在该类型的子集上失败 的相关文章

随机推荐