我的数据可以包含一组标识字段,第二组或两者。我有这样的接口编码。
export interface IRecordIdBase {
RecordType: enumRecordType;
}
export interface IRecordIdA extends IRecordIdBase {
AlphaCode: string;
LocationCode: string;
}
export interface IRecordIdB extends IRecordIdBase {
BravoCode: string;
LocationCode?: string;
}
麻烦的是,我知道的唯一方法就是制造一个"这个,那个或两个" item是一个联合类型。
export type IRecordId = IRecordIdA | IRecordIdB | (IRecordIdA & IRecordIdB);
但是,我以后无法扩展类型。我使用不同的数据子集,需要不同的接口,但都具有相同的ID结构。例如,
// can't extend IRecordId
export interface IRecordContent extends IRecordId {
RecordData: string;
RecordAuthor: string;
}
export interface IRecordMeta extends IRecordId {
RecordAdded: string;
RecordLastUpdated: string;
}
是否有接口模式或其他解决方案?我正在使用TypeScript v2.6.1。