TS:根据输入参数返回对象键

时间:2020-05-07 10:28:52

标签: javascript typescript function conditional-statements

我具有以下功能:

function getObject(inputObject, additionalParam1?, additionalParam2? ) {
  const returnObject = {...inputObject }

  if(additionalParam1) { 
    returnObject.additionalParam1 = additionalParam1
  }

  if(additionalParam2) { 
    returnObject.additionalParam2 = additionalParam2
  }

  return returnObject
}

它可以正常工作,但是由于所有的if语句,代码对我来说很难看。我还对返回值进行了后端验证,它希望extraParam1和AdditionalParam2具有完全正确的类型或根本不存在,所以应该有以下内容:

additionalParam1 = undefined / null 

在returnObject里面不是选项。

有没有办法使代码更漂亮,更易读?

1 个答案:

答案 0 :(得分:1)

您可以考虑这样的事情:

function getObject(inputObject, additionalParam1?, additionalParam2?) {
    return {
        ...inputObject,
        ...additionalParam1 ? {additionalParam1} : {},
        ...additionalParam2 ? {additionalParam2} : {}
    }
}