Я хотел бы определить тип класса (type alias) для общего класса. Я хотел бы сделать это, чтобы пользователи устройства b могли иметь доступ к TMyType без использования устройства a. У меня есть такие единицы:
unit a;
interface
type
TMyNormalObject = class
FData: Integer;
end;
TMyType<T> = class
FData: <T>;
end;
implementation
end.
unit b;
interface
type
TMyNormalObject = a.TMyNormalObject; // works
TMyType<T> = a.TMyType<T>; // E2508 type parameters not allowed on this type
implementation
end.
Я уже нашел возможное обходное решение, которое мне не нравится, потому что он может затруднить поиск ошибок:
TMyType<T> = class(a.TMyType<T>);
Проблема с этим подходом заключается в том, что он вводит новый тип класса, а экземпляр a.TMyType не является типом b.TMyType(тогда как a.TMyNormallClass является b.TMyNormalClass и наоборот - они относятся к одному классу).