Stylistic choices
No classesโ
- red-javascript-style-guide - Why disallow the class keyword?
 - Sheriff tries to promote a lightly functional approach. Classes donโt fit such a design
 
No reduceโ
info
Sheriff actually allows using reduce for basic operations like summing up numbers.
Only complex operations are banned.
No enumsโ
- eslint-plugin-typescript-enum
 - Enums considered harmful
 - How to use TypeScript Enums and why not to, maybe
 - Let's Talk About TypeScript's Worst Feature
 - Effective TypeScript explicitly warns against them, stating that Enums are a legacy design choice of TypeScript
 
No overloadsโ
Overloadsโฆ
- are superseded by generics. Overloads are a legacy, C#/Angular leftover that was made available in TypeScript before generics were a thing. There are no problems that overloads solve better than generics
 - clutter the code and make it more verbose and harder to read, which increase the cognitive overload
 - clutter IDE tooltips
 - force you to write non-standard JavaScript syntax
 - enable flexibility. In other words, they enable your team to write inconsistent codeโexactly the problem that ESLint is designed to solve
 - are explicitly warned against in Effective TypeScript, which (quite correctly) claims that conditional types are preferable in every way