Ich habe verschiedene Quellen von Node.js-Projekten untersucht, und ich habe festgestellt, dass einige Leute invariant verwenden. Nach dem, was ich verstanden habe, ist invariant
ein Werkzeug, mit dem Sie Assertionen in Ihren Code einfügen und Fehler nach Bedarf auslösen können.Mit Facebooks Invariante vs if throw
Frage:
Wann möchten Sie mit invariant
vs werfen Fehler, die traditionelle Art und Weise begünstigen?
// Using invariant
function doSomething(a, b) {
invariant(a > b, 'A should be greater than B');
}
// If throw
function doSomething(a, b) {
if(a <= b) {
throw new Error('A should be greater than B');
}
}
Wahrscheinlich nur weil es eine Zeile statt mehrerer Zeilen ist. Die gleiche Art von Muster wie 'Preconditions' in Google Guava (Java) – Krease