TSLint double vs dreifache Gleichheit

8

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?

    
user886079 29.03.2014, 15:07
quelle

2 Antworten

10

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:

%Vor%

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.

    
basarat 30.03.2014, 00:14
quelle
2

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.

    
Darren Oster 05.02.2015 03:31
quelle

Tags und Links