型付きリアクティブフォーム
厳密な型付けでフォームを構築します
「型付きリアクティブフォーム」はCoddyKit上の無料Angular Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAngular Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Angular Academyコースには全4レッスンが含まれています。
型付きフォームのメリット
Angular 14より前は、リアクティブフォームの値がanyとして型付けされていました。型付きリアクティブフォームを使うと、コンパイラーがフォームの値の構造やコントロール名を把握でき、完全な型安全性が得られます。
型付きFormControl
FormControlはジェネリックです。値の型を指定すると、読み取りと書き込みがチェックされます。
const name = new FormControl<string>('', {
nonNullable: true
});型付きFormGroup
FormGroupは、渡されたコントロールから値の型を推論します。
const form = new FormGroup({
email: new FormControl(''),
age: new FormControl(0)
});推論される値の型
上記のグループのvalueは{ email: string | null; age: number | null }として型付けされ、すべてコンパイル時にチェックされます。
const v = form.value; // typed automaticallynull許容性
デフォルトでは、コントロールをnullにリセットできるため、値の型には| nullが含まれます。nonNullableを使うと、nullを除外できます。
new FormControl('', { nonNullable: true });
// value type: string (no null)安全にコントロールへアクセスする
form.controls.emailは厳密に型付けされているため、コントロール名のタイプミスをコンパイラーが検出します。
form.controls.email.setValue('a@b.com');getとcontrolsの比較
型安全性のため、form.get('name')よりもform.controls.nameを優先してください。getは、型付けが緩やかなAbstractControl | nullを返します。
getRawValue
getRawValue()は、無効化されたコントロールを含むすべての値を返します。一方、valueは無効化されたコントロールを除外します。
const all = form.getRawValue();ネストされたグループ
型付きグループは組み合わせて使用できます。ネストされたFormGroupは、独自の型付き構造を親の値に提供します。
const form = new FormGroup({
user: new FormGroup({
first: new FormControl(''),
last: new FormControl('')
})
});patchValueの型安全性
patchValueはフォームの値の部分型を受け取ります。未知のキーはコンパイラーによって警告されます。
form.patchValue({ email: 'x@y.com' });レガシーフォームの移行
段階的な移行のために、UntypedFormGroupなどの型なしAPIも用意されています。新しいコードでは、安全性のために型付きクラスを使用してください。
クイックチェック
型付きリアクティブフォームについての理解度を確認します。
まとめ
FormControlとFormGroupをジェネリックにすることで型付きリアクティブフォームがチェック済みの値の構造を推論できること、デフォルトでは| nullが含まれること(nonNullableで回避可能)、そしてcontrolsによるアクセスの方がgetより安全であることを学びました。
よくある質問
「型付きリアクティブフォーム」レッスンは無料ですか?
はい。「型付きリアクティブフォーム」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Angular Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Angular Academyコースには全4レッスンが含まれています。
「型付きリアクティブフォーム」で何を学びますか?
厳密な型付けでフォームを構築します ブラウザで直接実行するハンズオンコードでAngular Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Angular Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAngular Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「型付きリアクティブフォーム」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAngular Academyレッスンでコードを書いて実行できますか?
はい。すべてのAngular Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 型付きリアクティブフォーム
- FormArrayと動的フィールド
- 非同期バリデーター
- FormBuilderのパターン