Допустим, у меня есть класс с большим количеством параметров типа:
class BaseClass<T extends T1, U extends U1, V extends V1, /* etc. */ >
Есть ли способ создать аргумент одного типа, который мог бы позволить "распространять" или "деструктурировать" вдоль строк что вы можете делать с объектами в ES6?
Таким образом, вместо необходимости реализовывать подклассы как
class FooClass extends BaseClass<TFoo, UFoo, VFoo, /* etc. */ >
, я мог бы установить все аргументы типа и передать их в один go
// example of what I'd like to be possible:
metatype FooTypes = <TFoo, UFoo, VFoo, /* etc. */>
class FooClass extends BaseClass<...FooTypes>
Причина, по которой я надеюсь сделать что-то подобное, заключается в том, что у меня есть разные объекты, отвечающие за разные свойства сущностей, такие как «заметки» и «комментарии», которые имеют почти дюжину связанных типов (например, локальная форма, ответ API, форма внутри стороннего кэша и т. д. c.), но не каждый объект, взаимодействующий с ними, должен работать с каждым из этих типов.
То, что я хочу сделать, это передать одну ссылку, например «NoteTypes», «CommentTypes», что по сути означает «Вы можете сопоставить любые параметры типа, которые вам нужны, с этим».
Проблема I ' Казалось бы, описание m лучше всего решить «деструктуризацией типов», но эта проблема GitHub , похоже, указывает на то, что это пока невозможно.
Вместо фактической деструктуризации типов, что было бы лучшим способом приблизиться к этому?