我有定义了一些属性的接口。我想从这个接口创建一个对象,但是在创建时,我不想完全初始化接口中提到的所有属性。我只想初始化几个。我怎样才能做到这一点呢?谢谢。
export interface Campaign {
id: string;
name: string;
createdOn: string;
lastUpdated: string;
createdBy: User;
type: CampaignType;
status: CampaignStatus;
startDate: string;
endDate: string;
budget: number;
description: string;
account: Account;
}我想创建一个campaign对象数组。这就是我正在尝试做的事情。
let campaigns: Campaign[] = [
{ id:"1",
name: "test campaign"
}
];然而,我得到了以下错误。
类型'{ id: string;name: string;}‘缺少’Campaign‘类型的以下属性: createdOn、lastUpdated、createdBy、type和6 more.ts(2740)
发布于 2019-04-16 19:16:33
你可以使用Partial -
let campaigns: Partial<Campaign>[] = [
{ id:"1",
name: "test campaign"
}
];发布于 2019-04-16 19:13:19
如果您将可选属性设置为可空,那么它应该可以工作。
示例:
type User = {
firstName: string;
lastName?: string;
};
// We can assign a string to the "lastName" property
let john: User = { firstName: "John", lastName: "Doe" };
// ... or we can explicitly assign the value undefined
let jane: User = { firstName: "Jane", lastName: undefined };
// ... or we can not define the property at all
let jake: User = { firstName: "Jake" };发布于 2019-04-16 19:18:56
您可以通过执行{ propName?: propType }将不希望在创建时设置值的属性标记为可选
或者,如果希望将所有属性标记为可选,则可以使用Partial
Partial<{
prop1: string,
prop2: number,
}>https://stackoverflow.com/questions/55706799
复制相似问题