【发布时间】:2019-12-22 21:05:16
【问题描述】:
我有一个这样的界面:
export interface Picture {
id?: string;
src?: string;
width: number;
height: number;
}
我希望模型至少对id 或src 属性之一具有价值。有没有办法指定?
【问题讨论】:
标签: typescript
我有一个这样的界面:
export interface Picture {
id?: string;
src?: string;
width: number;
height: number;
}
我希望模型至少对id 或src 属性之一具有价值。有没有办法指定?
【问题讨论】:
标签: typescript
您可以使用union types 来完成您的任务:
type PictureBase = {
width: number;
height: number;
}
export type Picture = ({ id: string } | { src: string }) & PictureBase;
另请参阅discriminated unions上的这篇文章
【讨论】:
{ id: string } OR { src: string}
您可以扩展这些接口。
interface BasePicture {
width: number;
height: number;
}
interface IdPicture extends BasePicture {
id: string;
}
interface SrcPicture extends BasePicture {
src: string;
}
export type Picture = IdPicture | SrcPicture;
【讨论】: