我正在使用流程进行类型检查,并且具有以下功能。
function foo(x: Array<number> | Array<string>) {
const s = x.map(i => i);
}
我需要使用Array<number> | Array<string>
而不是Array<number | string>
,因为某些代码会自动生成,并且在我的控制范围之外,返回的类型为Array<number> | Array<string>
。
显然,不管x
的实际类型如何,我“应该”都可以对其执行数组操作。但是,我无法在x上使用map
函数,并且收到以下错误:
Cannot instantiate array type because string [1] is incompatible with number [2].
我想知道解决此问题的正确方法是什么,并且能够执行阵列操作而不会收到错误。
Link到小提琴。