Abstract Class:An abstract class in TypeScript is a class that cannot be instantiated on its own and is designed to be sub-classed by other classes. It can contain a mix of abstract and concrete methods.
Example:
abstract class Shape {
abstract calculateArea(): number;
display(): void {
console.log(“Displaying shape.”);
}
}
class Circle extends Shape {
constructor(private radius: number) {
super();
}
calculateArea(): number {
return Math.PI * this.radius ** 2;
}
}
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
myCircle.display();
In this example, Shape is an abstract class with an abstract method calculateArea() and a concrete method display(). The Circle class extends Shape and provides an implementation for the abstract method. An object of Circle can be instantiated and used.
Interface vs Abstract Class:
The main distinctions between interfaces and abstract classes are:
- Abstract Methods:
- Abstract Class: Can include abstract methods with or without providing a base implementation.
- Interface: Only declares the structure that implementing classes must follow without including any implementation details.
- Regular Methods:
- Instantiation:
Choose between an abstract class and an interface based on the specific needs of your design. Abstract classes are more suitable when there’s a need for shared implementation, while interfaces are great for defining contracts without implementation details.
Stay tuned for more TypeScript insights and best practices!
Source: hashnode.com