以下のような1つしかメソッドがない抽象クラスの時、
abstract class HogeRepository { Future<Bar?> get fuga({required String a, required String b}); }
以下の
Avoid defining a one-member abstract class when a simple function will do
の警告が出てしまう。
https://github.com/dart-lang/linter/issues/64
このサイトのようにして、
typedef
を定義し、抽象クラスに適用。
typedef HogeRepositoryResponse = Future<Bar?> Function({ required String a, required String b, }); abstract class HogeRepository { OperatorSettingsRepositoryResponse get fuga; }
で、実際に抽象クラスをoverrideしたメソッドは 元々は
Future<Bar?> fuga ({required String a, required String b}) async { // do something }
@override HogeRepositoryResponse get fuga => ({required a, required String b}) async { // do something }; // <= ここに;忘れないように
にしていけた。
get
にしたり=>
にするのを忘れずに。