no_combined_super_signature
無法從覆蓋方法 '{1}' 推斷 '{0}' 中缺失的型別。
描述
#當方法宣告需要推斷一個或多個型別,且這些型別無法推斷時,分析器會生成此診斷資訊,原因是沒有一個覆蓋方法的函式型別是所有其他覆蓋方法的超型別,如 覆蓋推斷 中所述。
示例
#以下程式碼會生成此診斷資訊,因為類 C 中宣告的方法 m 缺少返回型別和引數 a 的型別,並且這兩個缺失的型別都無法為其推斷。
dart
abstract class A {
A m(String a);
}
abstract class B {
B m(int a);
}
abstract class C implements A, B {
m(a);
}在此示例中,無法執行覆蓋推斷,因為覆蓋方法在以下方面不相容:
- 引數型別(
String和int)都不是彼此的超型別。 - 返回型別都不是彼此的子型別。
常見修復方法
#如果可能,請在子類中為方法新增與所有覆蓋方法的型別一致的型別。
dart
abstract class A {
A m(String a);
}
abstract class B {
B m(int a);
}
abstract class C implements A, B {
C m(Object a);
}