我有这样的界面:
export interface Picture {
id?: string;
src?: string;
width: number;
height: number;
}
我希望模型具有至少id
或src
属性之一的值。有没有办法指定?
答案 0 :(得分:5)
您可以使用union types完成任务:
type PictureBase = {
width: number;
height: number;
}
export type Picture = ({ id: string } | { src: string }) & PictureBase;
另请参见discriminated unions上的这篇文章
答案 1 :(得分:0)
您可以扩展这些接口。
interface BasePicture {
width: number;
height: number;
}
interface IdPicture extends BasePicture {
id: string;
}
interface SrcPicture extends BasePicture {
src: string;
}
export type Picture = IdPicture | SrcPicture;