Dictionary 映射函数类型中的Dart类继承 class A{} 类B扩展了{} 无效fA(A){} void fB(B){} 最终映射m={'test':fB};

Dictionary 映射函数类型中的Dart类继承 class A{} 类B扩展了{} 无效fA(A){} void fB(B){} 最终映射m={'test':fB};,dictionary,inheritance,dart,polymorphism,type-systems,Dictionary,Inheritance,Dart,Polymorphism,Type Systems,在上面的示例中,将fA分配给'test'有效,但fB会产生错误: 元素类型'(B)→ 无法将void“分配给映射值类型”(A)→ 作废“ 有没有办法指定值类型是一个函数,该函数采用的参数是或扩展了a 我还尝试了无效函数(T),但这会产生另一个错误: 泛型函数不能是类型参数 我发现让项目编译的唯一方法是在赋值时强制转换值,这似乎违背了类型检查的目的,因为在这种情况下,值类型也可能是动态的: final Map m={ “测试”:fB为空函数(A), }; 可能值得记录为Dart编译器错误。可能值得

在上面的示例中,将
fA
分配给
'test'
有效,但
fB
会产生错误:

元素类型<代码>'(B)→ 无法将void“分配给映射值类型
”(A)→ 作废“

有没有办法指定值类型是一个函数,该函数采用的参数是或扩展了
a

我还尝试了无效函数(T),但这会产生另一个错误:

泛型函数不能是类型参数

我发现让项目编译的唯一方法是在赋值时强制转换值,这似乎违背了类型检查的目的,因为在这种情况下,值类型也可能是
动态的

final Map m={
“测试”:fB为空函数(A),
};

可能值得记录为Dart编译器错误。

可能值得记录为Dart编译器错误