У меня есть array
Вопроса (interface
), который мне нужно отправить одной из многих функций в зависимости от типа Вопроса. Я думаю, что моя серия if
заявлений очень уродлива, и я надеюсь, что есть способ сделать это, придерживаясь SOLID. Я считаю, что нарушаю O (открыто для расширения, закрыто для изменения).
renderQuestionList(contents: Question[]): HTMLElement {
return yo`
<div>${contents.map(q => {
if (q.type == 'passfailna') { return this.renderQuestionPassfailna(q) };
if (q.type == 'yesno') { return this.renderQuestionYesno(q) };
if (q.type == 'numeric') { return this.renderQustionNumeric(q) };
})}
</div>`;
}
Тогда
renderQuestionPassfailna(q: Question): any {
return yo`<div>Stuff</div>`;
}
renderQuestionYesno(q: Question): any {
return yo`<div>Other Stuff</div>`;
}
renderQustionNumeric(q: Question): any {
return yo`<div>I'm Helping!</div>`;
}