更新:编辑为我的原始问题在本期得到回答,
给定一个冻结的类不能直接实现其他类(见上面的问题)
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.
有什么方法可以正确地将类型传递给实现的类?