diff --git a/src/roadmaps/typescript/content/108-classes/101-constructor-overloading.md b/src/roadmaps/typescript/content/108-classes/101-constructor-overloading.md index 806015c9d..7931acb2c 100644 --- a/src/roadmaps/typescript/content/108-classes/101-constructor-overloading.md +++ b/src/roadmaps/typescript/content/108-classes/101-constructor-overloading.md @@ -1,30 +1,20 @@ # Constructor Overloading -In TypeScript, you can achieve constructor overloading by using multiple constructors with different parameter lists in a single class. When you create an instance of the class, the constructor with the matching parameter list is called. Here's an example: +In TypeScript, you can achieve constructor overloading by using multiple constructor definitions with different parameter lists in a single class. Given below is the example where we have multiple definitions for the constructor: ```typescript -class MyClass { - property1: number; - property2: string; - - constructor(property1: number) { - this.property1 = property1; - } - - constructor(property1: number, property2: string) { - this.property1 = property1; - this.property2 = property2; +class Point { + // Overloads + constructor(x: number, y: string); + constructor(s: string); + constructor(xs: any, y?: any) { + // TBD } } ``` -In this example, we have two constructors with different parameter lists: constructor(property1: number) and constructor(property1: number, property2: string). When you create an instance of the class, the constructor with the matching parameter list is called: - -```typescript -let myInstance1 = new MyClass(10); -let myInstance2 = new MyClass(10, "Hello"); -``` +Note that, similar to function overloading, we only have one implementation of the consructor and it's the only the signature that is overloaded. Learn more from the following resources: -- [Constructors - TypeScript](https://www.typescriptlang.org/docs/handbook/2/classes.html#constructors) \ No newline at end of file +- [Constructors - TypeScript](https://www.typescriptlang.org/docs/handbook/2/classes.html#constructors)