Ignorera vissa egenskaper i ett gränssnitt när du skapar ett objekt i TypeScript?
Jag har ett gränssnitt definierat med några egenskaper. Jag vill skapa ett objekt från detta gränssnitt, men när jag skapar det vill jag inte fullständigt initiera alla egenskaper som nämns i gränssnittet. Jag vill bara initiera några. Hur kan jag uppnå det? Tack.
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;
}
Jag vill skapa en array av kampanjobjekt. Det här är vad jag försöker göra.
let campaigns: Campaign[] = [
{ id:"1",
name: "test campaign"
}
];
men jag får följande fel.
Typen '{ id: string; name: string; }' saknar följande egenskaper från typen 'Campaign': createdOn, lastUpdated, createdBy, type och 6 till.ts(2740)
Svar #1
du kan använda Partial -
let campaigns: Partial<Campaign>[] = [
{ id:"1",
name: "test campaign"
}
];
Svar #2
om du gör de valfria egenskaperna nullable borde det fungera.
exempel :
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" };
