входной тип функция вернет конкретный выходной тип только с помощью перегрузок?
function test(arg: string): number; function test(arg: number): string;
ну вот да, получается, только перегрузками тогда насколько адекватно использовать такой подход в ситуации, когда у нас может быть большое количество наследуемых классов, каждый из которых реализует какой-то метод, но со своими типами на вход и выход. Значит ли это, что мы в родительском классе (общем для всех) должны делать n количество методов-перегрузок под каждый возможный тип?
мы не можем изменять возвращаемый тип у методов наследуемого класса, если что
не совсем понял, я подразумеваю что-то такое class Base { add(a: string): string add(a: number): number } class BaseString extends Base { add(a: string): string } class BaseNumber extends Base { add(a: number): number } // чтобы когда мы делали, например let s = new BaseString() s.add(‘a’) // мы не видели в подсказках редактора кучу юнионов типа string | number | undefined | void
Обсуждают сегодня