declare const day: Day; let result = 0; switch (day) { case 'Monday': result = 1; break; case 'Tuesday': result = 2; break; case 'Wednesday': result = 3; break; case 'Thursday': result = 4; break; case 'Friday': result = 5; break; case 'Saturday': result = 6; break; case 'Sunday': result = 7; break; } ``` ### ✅ Correct ```ts type Day = | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'; declare const day: Day; let result = 0; switch (day) { case 'Monday': result = 1; break; default: result = 42; } ``` Likewise, here are some examples of code working with an enum: ### ❌ Incorrect ```ts enum Fruit { Apple, Banana, Cherry, } declare const fruit: Fruit; switch (fruit) { case Fruit.Apple: console.log('an apple'); break; } ``` ### ✅ Correct ```ts enum Fruit { Apple, Banana, Cherry, } declare const fruit: Fruit; switch (fruit) { case Fruit.Apple: console.log('an apple'); break; case Fruit.Banana: console.log('a banana'); break; case Fruit.Cherry: console.log('a cherry'); break; } ``` ### ✅ Correct ```ts enum Fruit { Apple, Banana, Cherry, } declare const fruit: Fruit; switch (fruit) { case Fruit.Apple: console.log('an apple'); break; default: console.log('a fruit'); break; } ``` ## When Not To Use It If you don't frequently `switch` over union types or enums with many parts, or intentionally wish to leave out some parts, this rule may not be for you.