我发现自己处于以下情况中:
有一个类型为 A
的变量,我将其传递给一个API,该API返回一个类型为A & B
的值。然后,我必须将此返回的值发送到一个期望类型为A
的负载的HTTP端点。
interface A {
name: string;
}
interface B {
type: string;
}
function api(arg: A): A & B {
return { name: arg.name, type: 'Blah' };
}
const x: A = { name: 'Foo' };
const y: A & B = api(x);
const z: A = y;
// Simulate HTTP call with payload z of type A
console.log(JSON.stringify(z));
输出结果为
{"name":"Foo","type":"Blah"}
。尽管z
的类型是A
,但有效载荷仍然包含B
的字段。如何删除交集类型之一(B),只保留类型
A
,以便输出为{"name":"Foo"}
?