JavaScript 或 TypeScript 中的条件链接

Conditional chaining in JavaScript or TypeScript

是否有在条件下向链添加函数的语法?

在这个例子中,如果 modifier === true,我希望 myKeyJoi.string().required(),但如果是 false,我希望 Joi.string():

function customJoi(modifier) {
  return Joi.object({
    myKey: Joi.string() //#If(modifier) .required() #EndIf
  });
}

我知道我可以不使用此功能,但需要执行多个步骤。我只是想知道是否有一种好的方法可以为大对象简洁地编写它。

您可以通过 ternary 实现。

function customJoi(modifier) {
    return Joi.object({
        myKey: modifier ? Joi.string().required() : Joi.string()
    });
}

如果不需要,您可以选择 optional

myKey: Joi.string()[modifier ? 'required' : 'optional']()