Ich schreibe einen benutzerdefinierten Typ Guard für mein Angular-Projekt.Lesbarer Weg zum Schreiben komplexer If-Anweisung
Die folgenden if
Aussagen (markiert durch meine Kommentare) funktionieren perfekt - aber ich kann nicht helfen, aber denke, es gäbe eine lesbare Möglichkeit, sie zu schreiben.
Die folgenden ersten überprüft, dass die Object
, die an die Funktion übergeben wird, die erforderlichen Requisiten hat (und früh beendet, wenn nicht).
Die nächste (und dritte) if
Anweisung überprüft den Wert der Stütze activity
ist ein String.
Die zweite und vierte if
Aussagen müssen, dass die Werte von Requisiten createdAt
und updatedAt
sind entweder vom Typ String überprüfen, oder dass sie Objekte und dass sie ihre eigenen Requisiten .sv
haben die Werte ist, ist der String timestamp
.
Es kann in der Tat eine bessere eine lesbarere Möglichkeit geben, die gesamte Funktion zu schreiben ?!
Zuerst müssen Sie Ihre Logik Fällen trennen, dann möchten Sie vielleicht ternäre verwenden für binäre Fälle (nur ein, wenn sie mit anderen) und Schaltergehäuse für mehrere Fälle verwenden (mehr als eine if), das So wird Ihr Code gut lesbar sein. Ich frage mich nur, warum verwenden Sie leere Anweisungen? – ProllyGeek
Ich glaube, Sie haben ein Problem mit der 'Every'-Anweisung. Das 'return false' gibt Ihre' isGridMetadata' -Funktion nicht zurück, es gibt nur die anonyme Funktion zurück, die an 'every' übergeben wird. –