FlutterでFreezedを利用した際に、生成したClassに独自メソッドを追加する方法を調査しました。
@freezed class Person with _$Person { const factory Person(String name, {int? age}) = _Person; void method() { print('hello world'); } }
このコードでは、method()
が正しく生成されずにエラーになります。継承(implements)からMixin(with)に記述を更新することで、正しくコード生成されるようになります。
@freezed abstract class Person implements _$Person { // withではなくimplementsを利用する const Person._(); // privateのコンストラクタを追加する const factory Person(String name, {int age}) = _Person; void method() { print('hello world'); } }