gpt4 book ai didi

JavaScript/TypeScript Array interface[] ,按类型分组发送许多函数中的一个

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:17 24 4
gpt4 key购买 nike

我有一个 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>`;
}

最佳答案

太丑了。如何构建功能图?也许像

constructor() {
this.questions = {
passfailna: q => this.renderQuestionPassfailna(q),
yesno: q => this.renderQuestionYesno(q),
numeric: q => return this.renderQustionNumeric(q)
};
}

renderQuestionList(contents: Question[]): HTMLElement {
return yo`<div>${contents.map(q => this.questions[q.type](q))}</div>`;
}

关于JavaScript/TypeScript Array interface[] ,按类型分组发送许多函数中的一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com