.text-align-left-i {text-align: left !important;}
在上面的示例中,将class A {}
class B extends A {}
void fA(A a) {}
void fB(B b) {}
final Map<String, void Function(A)> m = {'test': fB};
分配给fA
是可行的,但是'test'
会产生错误:
不能将元素类型
fB
分配给映射值类型'(B) → void'
。
是否有任何方法可以指定值类型为带有'(A) → void'
或扩展参数的函数?
我也尝试过A
,但这会产生另一个错误:
泛型函数不能是类型参数。
我发现编译项目的唯一方法是在赋值时强制转换值,这似乎违背了类型检查的目的,因为在这种情况下,值类型也可能是void Function<T extends A>(T)
:
dynamic
答案 0 :(得分:0)
作为Dart编译器错误可能值得记录。