メインコンテンツにスキップ

undefined_extension_getter

拡張機能「{1}」には、ゲッター「{0}」が定義されていません。

説明

#

この診断は、拡張機能のオーバーライドを使用してゲッターを呼び出そうとしたが、指定された拡張機能にそのゲッターが定義されていない場合にアナライザーによって生成されます。また、静的ゲッターを参照したが、指定された拡張機能にそのゲッターが定義されていない場合にも生成されます。

#

以下のコードは、拡張機能Eに名前がbのインスタンスゲッターが宣言されていないため、この診断を生成します。

dart
extension E on String {
  String get a => 'a';
}

extension F on String {
  String get b => 'b';
}

void f() {
  E('c').b;
}

以下のコードは、拡張機能Eに名前がaの静的ゲッターが宣言されていないため、この診断を生成します。

dart
extension E on String {}

var x = E.a;

一般的な修正

#

ゲッターの名前が間違っている場合は、既存のゲッターの名前に変更してください。

dart
extension E on String {
  String get a => 'a';
}

extension F on String {
  String get b => 'b';
}

void f() {
  E('c').a;
}

ゲッターの名前は正しいが拡張機能の名前が間違っている場合は、拡張機能の名前を正しい名前に変更してください。

dart
extension E on String {
  String get a => 'a';
}

extension F on String {
  String get b => 'b';
}

void f() {
  F('c').b;
}

ゲッターと拡張機能の名前が両方とも正しいが、ゲッターが定義されていない場合は、ゲッターを定義してください。

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