Ich weiß, dass ein einzelnes Gleichheitszeichen Zuweisung bedeutet; Doppel bedeutet Gleichheit; und dreifach bedeutet Gleichheit und den gleichen Typ.
Was ich nicht verstehe, warum das Typoskript linter möchte, dass ich in diesem Fall dreifache Gleichheitszeichen verwende:
%Vor%TsLint: == sollte ===
sein
Ich weiß, dass 0 eine Zahl ist und ich weiß auch, dass b eine Zahl ist (sonst bekomme ich einen Kompilierungsfehler). Warum sollte ich in diesem Fall dreifache Gleichheitszeichen verwenden?
Typen können Sie nicht von allen Fehlern speichern, die von ==
verursacht wurden. Zumal undefined
und null
mit allen Typen kompatibel sind. z.B. Folgendes ist ein falsches if:
Weitere Informationen dazu, warum diese gleich sind Ссылка
Persönlich : Ich habe diese Regel deaktiviert und hatte nie Probleme. Ich vergleiche nicht mit true/false/null/undefined
, nur if
sie. Und typescript verhindert den Vergleich von strings
und numbers
, so dass es sich nicht um einen Fehler handelt, mit dem ich mich befassen muss.
Die Verwendung des Dreifach-Gleichheitsoperators speichert Sie auch in Fällen, in denen das resultierende Javascript von einer externen Datei (d. h. außerhalb der TypeScript-Umgebung) aufgerufen werden kann. Reine JS-Dateien werden nicht von tslint verarbeitet, und indem tslint die dreifache Gleichheit "benötigt", macht sie die resultierende Javascript-Datei etwas resilienter.
Tags und Links typescript equality