Owe*_*vin 14 typescript angular angular14
从 Angular 14 开始,反应式表单默认是严格类型化的(类型化表单)。这很棒。我已经实现了一个简单的登录表单,如下所示
\n form = this.fb.group({\n username: [\'\', [Validators.required]],\n password: [\'\', [Validators.required]],\n rememberMe: [true]\n });\n submit() {\n this.authenticationService.login(this.form.value).subscribe();\nRun Code Online (Sandbox Code Playgroud)\n在我的服务中
\nlogin(data: { username: string; password: string; rememberMe: boolean }): Observable<any> {\n // Logic to login here\n}\nRun Code Online (Sandbox Code Playgroud)\nformTypescript 推断出的类型
form: FormGroup<{username: FormControl<string>, password: FormControl<string>, rememberMe: FormControl<boolean>}>\nRun Code Online (Sandbox Code Playgroud)\n看起来不错。问题是因为this.form.value它有一个 type Partial<{ username: string; password: string; rememberMe: boolean; }>。这会导致打字稿抛出错误
Argument of type \'Partial<{ username: string; password: string; rememberMe: boolean; }>\' is not assignable to parameter of type \'{ username: string; password: string; rememberMe: boolean; }\'. \xc2\xa0\xc2\xa0Property \'username\' is optional in type \'Partial<{ username: string; password: string; rememberMe: boolean; }>\' but required in type \'{ username: string; password: string; rememberMe: boolean; }\'.\nRun Code Online (Sandbox Code Playgroud)\n有没有办法在声明表单组时指示该字段将在表单组值中可用。目前我正在打字如下
\nArgument of type \'Partial<{ username: string; password: string; rememberMe: boolean; }>\' is not assignable to parameter of type \'{ username: string; password: string; rememberMe: boolean; }\'. \xc2\xa0\xc2\xa0Property \'username\' is optional in type \'Partial<{ username: string; password: string; rememberMe: boolean; }>\' but required in type \'{ username: string; password: string; rememberMe: boolean; }\'.\nRun Code Online (Sandbox Code Playgroud)\n上面的方法可行,但是是否必须对所有形式进行类型转换?
\n| 归档时间: |
|
| 查看次数: |
3588 次 |
| 最近记录: |