undefined_extension_getter
扩展 '{1}' 未定义 getter '{0}'。
描述
#当使用扩展覆盖 (extension override) 调用 getter,但该 getter 未由指定的扩展定义时,分析器将生成此诊断。当引用静态 getter 但其未由指定的扩展定义时,分析器也会生成此诊断。
示例
#以下代码将生成此诊断,因为扩展 E
未声明名为 b
的实例 getter。
dart
extension E on String {
String get a => 'a';
}
extension F on String {
String get b => 'b';
}
void f() {
E('c').b;
}
以下代码将生成此诊断,因为扩展 E
未声明名为 a
的静态 getter。
dart
extension E on String {}
var x = E.a;
常见修复方法
#如果 getter 的名称不正确,请将其更改为现有 getter 的名称。
dart
extension E on String {
String get a => 'a';
}
extension F on String {
String get b => 'b';
}
void f() {
E('c').a;
}
如果 getter 的名称正确但扩展的名称错误,请将扩展的名称更改为正确的名称。
dart
extension E on String {
String get a => 'a';
}
extension F on String {
String get b => 'b';
}
void f() {
F('c').b;
}
如果 getter 和扩展的名称都正确,但 getter 未定义,则请定义该 getter。
dart
extension E on String {
String get a => 'a';
String get b => 'z';
}
extension F on String {
String get b => 'b';
}
void f() {
E('c').b;
}