@romaro

Можно ли типизировать класс по именам методов?

Существует ли способ задать для абстрактного класса имена методов, не перечисляя их в самом классе? Мне нужно, чтобы все наследники не только реализовали интерфейс делегата, но и сделали это под заранее определенными именами. То есть по аналогии с mapped types для обычных объектов:
type Parsers = 'email' | 'phone';
type ParserDelegate = (v: string) => string;


// Работает
type Obj = {
    [K in Parsers]: ParserDelegate;
}

// Не работает
abstract class Parser {
    abstract [K in Parsers]: ParserDelegate;
}


Код в песочнице.
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы