Freezedクラスの定義
@freezed
class Dummy with _$Dummy {
factory Dummy.dog(
required String? name,
required int? age,
)
factory Dummy.cat(
required String? name,
required int? age,
required String? color,
)
// whenメソッドの引数の型がfactoryコンストラクタの名前に一致する
// 下の関数はwhenの例を示すだけの意味のないもの
String get name => when(
dog : (_, _) => 'POCHI',
cat : (_, _, _) => 'TAMA',
)
// whenOrNullであれば引数を限定することができる
String get name => whenOrNull(
dog : (_, _) => 'POCHI',
)
}