typescript 如何使用IIFE分配常量值?[已关闭]

zbdgwd5y  于 2022-12-24  发布在  TypeScript
关注(0)|答案(1)|浏览(99)
    • 已关闭**。此问题为opinion-based。当前不接受答案。
    • 想要改进此问题吗?**请更新此问题,以便editing this post可以用事实和引文来回答。

昨天关门了。
Improve this question
有时当给一个常量赋值时,需要几个条件表达式。
示例:

  1. const a = b ? b : c ? c : d

使用'IIFE'中的'if'语句而不是'?'运算符赋值看起来如何?

  1. const a = (()=>{
  2. if(b) return b
  3. if(c) return c
  4. return d
  5. })()

你觉得它不坏还是反模式?
++添加示例。

  1. const a = (() => {
  2. if (b % 2 == 0) {
  3. return 2
  4. }
  5. if (c % 3 == 0) {
  6. return 3
  7. }
  8. if (d % 5 == 0) {
  9. return 5
  10. }
  11. return null
  12. })()
nafvub8i

nafvub8i1#

这可能是一个固执己见的答案。如果是这样,请与您的投票分享。
然而,我更喜欢为这样的代码使用函数,这使得它具有声明性,因此更容易理解。
举个例子,在下面的例子中,执行从mainFunction开始。而不是转储它的一切,你可以把代码分成更小的函数与单一的责任,只是调用他们。这是,我可以只读函数名,并获得什么函数正在做的上下文。我不必进入内部函数,以了解高级工作。
这还使您能够将代码拆分到多个文件中,从而使代码更易于维护

  1. function getNumber(b, c, d) {
  2. if (b % 2 === 0) {
  3. return 2
  4. }
  5. if (c % 3 === 0) {
  6. return 3
  7. }
  8. if (d % 5 === 0) {
  9. return 5
  10. }
  11. return null
  12. }
  13. function mainFunction() {
  14. const [b, c, d] = getParams();
  15. const number = getNumber(b, c, d);
  16. const result = getProcessedValue();
  17. printResult(result);
  18. }
展开查看全部

相关问题