[vc_row][vc_column][vc_column_text]Ich habe gerade etwas Hilfreiches über TSLint gelernt. Seht euch zunächst folgendes Beispiel an:[/vc_column_text][vc_column_text]
switch (foo) { case 1: someFunc(foo); /* falls through */ case 2: case 3: someOtherFunc(foo); }
[/vc_column_text][vc_column_text]Zu beachten ist der Kommentar. Euch fällt sicher auf, dass in diesem switch nicht nur mehrere Fälle zusammengefasst sind, sondern dass auch an der Stelle, an welcher der Kommentar sitzt, kein break zu finden ist. Sprich, im case 1 würde tatsächlich auch der Code von case 2 bzw. case 3 ausgeführt werden. Ein sogenannter Switch Case Fallthrough, der auch aus anderen Sprachen bekannt ist.[/vc_column_text][vc_column_text]Manchmal ist das erwünscht. In den allermeisten Fällen jedoch ein Bug, welcher einem vergessenen break geschuldet ist. In diesem Beispiel ist es jedoch kein Bug, sondern ein Feature, also explizit erwünscht. Nur das TSLint einen Fallthrough standardmäßig aus dem bereits erwähnten Grund nicht mag und deshalb eine Warnung zeigt.[/vc_column_text][vc_column_text]Allerdings hat TSLint vorgesorgt für den Fall, dass doch Absicht dahinterstecken sollte. Dann muss der oben gezeigte magic comment eingebaut werden und schon sind alle zufrieden. Das hat auch den Vorteil, dass ein anderer Programmierer nicht denkt: Oh, das ist bestimmt ein Bug. Denn der Kommentar signalisiert ja explizit die Absicht des Fallthrough.[/vc_column_text][vc_column_text]
[/vc_column_text][/vc_column][/vc_row]