⏫
TCA の Reducer の実装で補完を効かせる方法
TCA の Reducer の実装では、以下のようなコードを書くと思います。
var body: some ReducerOf<Self> {
Reduce { state, action in
switch action {
case .xxx:
// ...
case .yyy:
// ...
// ...
}
}
}
このようなコードを実装していく時、Reduce
内で Action の case 名の補完が出てこなくなったりして、自力でコードを書かなければいけない状況に陥ってしまったことはないでしょうか。私はよく陥っています。
マルチモジュール化してあげれば多少改善はすることはありますが、それでも補完してくれないことがあります。Xcode 15 でも全然陥ってしまいます。
そんな時は、上記のコードを以下のようにしてみると、スイスイ補完されるようになるかもしれません。
var body: some ReducerOf<Self> {
- Reduce { state, action in
+ Reduce<State, Action> { state, action in
switch action {
case .xxx:
// ...
case .yyy:
// ...
// ...
}
}
}
たったこれだけです。
この Tips は Discussion に記載されていました。
明示しなければいけないのはちょっと悲しいですが、そんなに手間ではない方法で快適に開発できるようになるので、基本明示してあげるのが良いかもしれないと思いました。
Discussion