Interfaces are probably the feature that you will miss the most while developing large-scale web applications with JavaScript if you have a background in object-oriented statically-typed programming languages such as Java or C#.
Traditionally, in OOP, we say that a class can extend only one class and implement one or more interfaces. An interface can implement one or more interfaces and cannot extend another class or interface. Wikipedia's definition of interfaces in OOP is as follows:
"In object-oriented languages, the term interface is often used to define an abstract type that contains no data or code, but defines behaviors as method signatures."
In TypeScript, interfaces don't strictly follow this definition. The two main differences are that in TypeScript:
- An interface can extend a class
- An interface can define data and behaviors as opposed...