So #TypeScript has:
- Types
- Interfaces
- Regular classes
- Anonymous classes
- Abstract classes
- Probably something else I'm not aware of yet
Why have all these, especially given that most of them are the same thing but with different restrictions? You can just do classes well enough and ditch most of it. #CommonLisp has classes that can easily dub as interfaces or abstract classes, why not just steal the idea and cut the amount of terms to learn and differentiate in, like, three times?