Podmienené reťazenie v JavaScripte alebo TypeScripte


Existuje syntax na pridanie funkcie do reťazca za určitých podmienok?

V tomto príklade by som chcel, aby myKey bolo Joi.string().required(), ak modifier === true, ale len Joi.string(), ak je false:

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

Viem, že sa zaobídem bez tejto funkcie s viacerými krokmi. Len sa zaujímam, či existuje pekný spôsob, ako to stručne zapísať pre veľké objekty.

Odpoveď č. 1

Môžete zvoliť optional, ak nie je povinné.

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

Odpoveď č. 2

Môžete toho dosiahnuť pomocou ternárneho operátora.

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

Súvisiace články