我有带有可选属性列表的界面。
export interface OptionalIds {
entityA_Id?: number;
entityB_Id?: number;
entityC_Id?: number;
}
Run Code Online (Sandbox Code Playgroud)
我有一个要求,必须准确定义其中之一。像这样的东西:
export interface RequiredBId {
entityA_Id?: undefined;
entityB_Id: number;
entityC_Id?: undefined;
}
export interface RequiredCId {
entityA_Id?: undefined;
entityB_Id?: undefined;
entityC_Id: number;
}
export interface OptionalIds {
entityA_Id?: number;
entityB_Id?: number;
entityC_Id?: number;
}
export type RestrictedOptionalIds = OptionalIds & (RequiredAId | RequiredBId | RequiredCId)
Run Code Online (Sandbox Code Playgroud)
问题是:是否有其他方法可以在不使用奇怪结构的情况下实现所描述的行为?