как расширить абстрактные классы `Freezed`

обновление: отредактировано, поскольку в этом выпуске дан ответ на мой исходный вопрос ,

учитывая, что замороженный класс не может напрямую реализовать другие классы (см. проблему выше)

Foo.baz можно реализовать, как показано ниже

      abstract class Baz<T> {
  const Baz(this.data);
  final T data;
}

      @freezed
abstract class Foo<T> with _$Foo<T> {
  @Implements(Baz)
  const factory Foo.baz(T data) = _FooBaz;
}

но Type T не передается в реализованный Baz в

      abstract class _FooBaz<T> implements Foo<T>, Baz<dynamic> { /// `<= HERE!!!!`
  const factory _FooBaz(T data) = _$_FooBaz<T>;

  T get data;
  _$FooBazCopyWith<T, _FooBaz<T>> get copyWith;
}

если я попытаюсь передать Type внутри @Implements Я получаю ошибку

Arguments of a constant creation must be constant expressions. Try making the argument a valid constant, or use 'new' to call the constructor.

есть ли способ правильно передать тип реализованному классу?

0 ответов

Другие вопросы по тегам