У вас есть:
class ComposerFunction with HttpFunction<Input, Request>
{
...
}
Предполагая, что вы хотите, чтобы ComposerFunction
был обобщенным c классом, который можно параметризовать для указанных вызывающим типами Input
и Request
, у вас нет объявил ComposerFunction
родовым c классом. Хотя HttpFunction
является обобщенным c классом, ComposerFunction
как написано является non -generi c классом, который использует HttpFunction
, специализированный для типов с буквальным именем Input
и Request
. Если у вас нет классов с именами Input
и Request
, это приведет к ошибке:
Имя 'Input' не является типом, поэтому его нельзя использовать как тип. аргумент.
, чтобы сделать ComposerFunction
обобщенным c классом, вам нужно добавить параметры типа в it :
class ComposerFunction<Input, Request> with HttpFunction<Input, Request>
{
...
}
То же самое относится до InterpreterFunction
.
Кроме того, with
обычно предназначен для использования с mixin
с . Также допускается использование abstract class
для обратной совместимости с Dart 2.0 и более ранними версиями, но поскольку HttpFunction
не предоставляет никакого кода, который можно использовать повторно, это не кажется полезным. Если вы хотите, чтобы ComposerFunction
(и InterpreterFunction
) соответствовали интерфейсу, вместо этого вы обычно используете implements
.