我有一个函数应该能够接受一个参数,即 typeA
或 typeB
。这两种类型有一些不同的属性,我需要使用这些属性执行操作 - 取决于它是哪种类型。
我将联合类型传递给函数的 input
:typeA | typeB
。但即使检查独特的属性也无济于事。我收到错误 Property 'value' does not exist on type 'typeA | typeB'. Property 'value' does not exist on type 'typeB'.(2339)
代码:
interface typeA {
name: string;
value: number;
}
interface typeB {
name: string;
data: number;
};
function double(input: typeA | typeB): number {
if (input.value) {
return input.value * 2;
}
if (input.data) {
return input.data * 2;
}
return 0;
}
(此处打字稿游乐场中的相同代码:code)
有没有办法解决这个问题?