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;
}