👌

@ngneat/reactive-formsからTypedFormsに乗り換える

2023/03/02に公開

Angular14からReactiveFormで型が使えるようになったけど、いくつかハマったのでそのメモです。

型をつけてもnull | undefinedで返ってくる

公式ドキュメントにもありますがnonNullAble: trueをつけるとnullが返ってくるのを防げます。

ちなみに undefined 型にすると form.value でプロパティにアクセスできない時があり、 form.getRawValue() なら undefined のプロパティも空文字でかえってきて取得できます。

Validationの指定の仕方が変わった

validators: []に指定します。

removeControlするプロパティはOptionalにしないと型エラー

初期値に undefined をセットする場合のみ { value: undefined, disabled: false } を指定する

これをしないと型はnullがないにも関わらず、valueChangesでnullが飛んできます。

@ngneat/reactive-formsControlsOfはAngularにないので、自前で定義する

ControlsOfは ControlsOf<{ name: string }> などするとFormControlを作ってくれます。
Angular標準にはありません。

Discussion