Типы - это описание, конкретные функции требуют конкретных сущностней.
Что-то типа:
export class EditComponents<T> {
constructor(DataClass: Type<T>) {
this.componentData = new DataClass();
}
componentData!: T;
}
При этом генерик явно при создании объекта EditComponents указывать уже не надо, ts достаточно умный чтобы понять на основе переданных данных.