Существует ли способ задать для абстрактного класса имена методов, не перечисляя их в самом классе? Мне нужно, чтобы все наследники не только реализовали интерфейс делегата, но и сделали это под заранее определенными именами. То есть по аналогии с 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;
}
Код в
песочнице.