sdk_version_extension_methods
拡張メソッドはバージョン 2.6.0 までサポートされていませんでしたが、このコードは以前のバージョンで実行できるようにする必要があります。
説明
#アナライザーは、SDK 制約の最下限が 2.6.0 未満であるコードで拡張宣言または拡張オーバーライドが検出された場合に、この診断を生成します。拡張機能は以前のバージョンではサポートされていなかったため、このコードは SDK の以前のバージョンでは実行できません。
例
#以下は、2.6.0 未満の最下限を持つ SDK 制約を定義する pubspec の例です。
yaml
environment:
sdk: '>=2.4.0 <2.7.0'その`pubspec.yaml`を持つパッケージでは、次のようなコードがこの診断を生成します。
dart
extension E on String {
void sayHello() {
print('Hello $this');
}
}一般的な修正
#古いバージョンのSDKをサポートする必要がない場合は、SDK制約を増やして構文を使用できるようにすることができます。
yaml
environment:
sdk: '>=2.6.0 <2.7.0'古いバージョンの SDK をサポートする必要がある場合は、拡張機能を使用しないようにコードを書き換えてください。これを行う最も一般的な方法は、拡張機能のメンバーを、`this` にバインドされていた値をパラメーターとして取るトップレベル関数(またはメソッド)に書き換えることです。
dart
void sayHello(String s) {
print('Hello $s');
}