Dev Highlights

Доки по разработке

This project is maintained by teniryte

Перегрузка методов

Принципы

Пример

class Person {
  add(a: number, b: number): number;
  add(a: string, b: string): string;
  add(a: Date, b: Date): Date;
  add(a: any, b: any) {
    if (typeof a === 'number' && typeof b === 'number') {
      return a + b;
    }
    if (typeof a === 'string' && typeof b === 'string') {
      return a + b;
    }
    if (a instanceof Date && b instanceof Date) {
      return new Date(a.getTime() + b.getTime());
    }
  }
}

Практика