Delphi Error – E2589 Helper type can not be declared in parameterized type context

Delphi Compiler Error

E2589 Helper type can not be declared in parameterized type context

Reason for the Error & Solution

This occurs whenever you try to declare a helper type for a parameterized type.

type
  TFoo<T> = class
    type
      TFooHelper = class helper for TFoo<T>
      end;
  end;
end.

This can be solved by removing the parameterized type context, as follows:

type
  TFoo = class
    type
      TFooHelper = class helper for TFoo
      end;
  end;
end.