如果我有界面:
declare interface APIResponse {
type: string
}
还有一些有效载荷:
declare interface Payload {
prop: string
}
我也希望API响应可以为空,所以我想这样做:
methodName: () => (APIResponse & Payload) | null
即将响应与交集类型结合起来,还可以使整个内容为空。这可能吗?
答案 0 :(得分:0)
是的,它的行为完全符合您的预期:
interface APIResponse {
type: string
}
interface Payload {
prop: string
}
class Example {
methodName(): (APIResponse & Payload) | null {
// OK
return { type: 'str', prop: 'str' };
// OK
return null;
// NO! Missing 'type'
return { prop: 'str' };
// NO! Missing 'prop'
return { type: 'str' };
}
}
我在其中留了多个陈述,显然-您只能有一个:)