【发布时间】:2019-06-06 14:11:45
【问题描述】:
在带有打字稿的 vscode 中
在使用用户定义的类型保护时没有正确推断出多个泛型
const arraySample = [1, [3, 4], ["s"]];
const isFlat = <T, U>(array: (T | T[] | U | U[])[]): array is (T | U)[] => {
return !array.some(Array.isArray);
};
if (isFlat(arraySample)) {
arraySample;
}
vscode 工具提示如下错误:
const isFlat: <number, number>(array: (number | number[])[]) => array is number[]
但我认为它必须是
const isFlat: <number, string>(array: (number | number[] | string | string[])[]) => array is (number|string)[]
您能告诉我正确的解决方案吗?
【问题讨论】:
标签: typescript generics union