Stavo leggendo attraverso questa: https://github.com/pburtchaell/redux-promise-middleware/blob/master/src/index.jsCos'è ... !! sintassi in ES6?
so che ...
viene utilizzato come oggetto di diffusione. So che lo !!
viene utilizzato per convertire qualsiasi cosa in un booleano con la stessa veridicità.
Tuttavia sapendo questo cosa significano quando sono messi insieme come ...!!
? Ho difficoltà a capire l'ultima riga qui:
{
...resolveAction,
...isAction(rejected) ? rejected : {
...!!rejected && { payload: rejected }
}
...resolveAction
diffonde solo le chiavi delresolveAction
....isAction(rejected) ?
controllerà serejected
risolve un'azione e quindi la diffonderà. (Non sono sicuro di questo o)- aggiungere
rejected
di opporsi se vero {...!!rejected && { payload: rejected }
????????????????
Come è ...!!
anche la sintassi valida? Ci sono due opzioni:
Se si diffonde l'oggetto, poi
!!
si applicherebbe a tutte le chiavi diffusioneSe
!!
viene applicato un primo momento è un valore booleano e non può essere diffuso .
Così Fa alcun senso, o mi sto perdendo qualcosa, perché dato che il codice, suppongo che sta cercando di diffondere un valore booleano.
In quel pronti contro termine, 'RESPINTO è un oggetto (linea 54). Forse l'operatore di spread in congiunzione con '!!' inverte ogni proprietà dell'oggetto? – Scott
La mia ipotesi è, e questa è solo un'ipotesi poiché non ho trovato nulla nelle specifiche ES6 sulle precisioni, che '...' ha una precedenza bassa, quindi in realtà lo spread è applicato a 'respinto && {payload: reject} '. Quindi ciò che il codice sta effettivamente testando è che c'è un valore rifiutato e in tal caso passarlo come una chiave chiamata 'payload' – nbermudezs
@nbermudezs Penso che tu stia facendo qualcosa. Un '&&' restituirà il secondo valore se il primo è vero, quindi l'oggetto si diffonde nell'oggetto padre. – L3viathan