我有一些属性定义的接口。我想从此接口创建一个对象,但是在创建时我不想完全初始化该接口中提到的所有属性。我只想初始化几个。我该如何实现?谢谢。
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;
}
我想创建一系列广告系列对象。 这就是我想要做的。
let campaigns: Campaign[] = [
{ id:"1",
name: "test campaign"
}
];
但是我遇到以下错误。
键入'{id:字符串;名称:字符串; }”缺少“广告系列”类型的以下属性:createdOn,lastUpdated,createdBy,type和6个以上。ts(2740)
答案 0 :(得分:1)
如果将可选属性设置为可空,则它应该起作用。
示例:
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" };
答案 1 :(得分:1)
您可以使用Partial-
let campaigns: Partial<Campaign>[] = [
{ id:"1",
name: "test campaign"
}
];
答案 2 :(得分:1)
您可以通过执行{ propName?: propType }
或者如果要将所有属性标记为可选,则可以使用Partial
Partial<{
prop1: string,
prop2: number,
}>