liqrizz
@liqrizz
лол

Как правильно написать рекурсию?

Пишу миксины не могу написать правильно рекурсию

type Constructor = new (...args: any[]) => {};


export function mixin<TBase extends Constructor>(Base: TBase[], count = 0): TBase {
  const currentClass = Base[count];
  if (count === Base.length - 1){
    return class extends currentClass {};
  } else {
    count++;
    return class extends mixin(Base, count++) {};
  }
}
// должно получится типа так
// return class extends one
//   return class extends two
//     return class extends three
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae Куратор тега TypeScript
Тлен
Используй готовые либы(или смотри на их код).
Сейчас миксины в ts представляют собой костыли поверх багов.

По твоему примеру: ты не можешь просто взять массив и получить из него вразумительные типы. Тебе нужны оврлоады на каждый отдельный тип, чтоб получить на выходе юнион.
Я мог бы что-нибудь накостылить, но не буду, потому что это больно.)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект