2

更新:编辑为我的原始问题在本期得到回答,

给定一个冻结的类不能直接实现其他类(见上面的问题)

Foo.baz可以实现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.

截屏

有什么方法可以正确地将类型传递给实现的类?

4

0 回答 0