Я новичок в машинописи. У меня есть функция, которая принимает следующие параметры:
customerId: number, // mandatory
courseDate: Date, // optional, by detault to current date, if given use provided date
loyaltyLevel: enum loyaltyLevelA loyaltyLevelB // mandatory, based on the value a boolean needs to be saved
proposal: string, // optional , Only when loyalty level is loyaltyLevelB
Sections: [{ // optional array
slNo: number // mandatory
endDate: Date // optional
}]
Products: [{ // optional array
pdtNo: number // mandatory
codeNo: number // optional
endDate: Date // optional
}]
Кто-нибудь может мне предложить какой-нибудь способ обработки нижеприведенного сценария ios с интерфейсами?
a) Optional* : Section or Products, defined above, any one or both of them can also be present. At least one should be present.
b) proposal string is optional and will be able to provide value only when loyalty level is loyaltyLevelB
c) handle loyaltyLevel with enum and based on the value boolean needs to be saved.
d) These arguments are used to save into a particular API, so getData function should accept dynamic parameters. can we do this with Partial interface?
private function getData(customerId: number,
courseDate: Date = new Date(),
loyaltyLevel, // not sure what to do with this
proposal?: string,
Sections?: ISectionInterface,
Products?: IProductsInterface
) {
return ({
cid: customerId,
courseDate: courseDate,
loyaltyLevelA : true or false based on user input
loyaltyLevelB: true or false based on user input
proposal: proposal,
Sections: Sections,
Products: Products
});
}
Может кто-нибудь иметь представление о том, как мы можем реализовать вышеупомянутый подход лучше с использованием машинописных интерфейсов. Любая помощь будет очень признательна.