如何告诉 Typescript *在这种情况下*函数的 return 类型永远不会为 null
How to tell Typescript that *in this instance* a function's return type is never null
我正在尝试让 typescript strictNullChecks
在 Angular 5 项目中工作。
我有一个表格:
this.signinForm = this.fb.group({
emailAddress: ['', NGValidators.isEmail()],
password: ['', Validators.required],
rememberMe: false,
});
我可以使用 this.signinForm.get('rememberMe')
获得 rememberMe
控件。然而,FormGroup#get
方法的 return 是 AbstractControl | null
,因此打字稿不喜欢 this.signinForm.get('rememberMe').value
(因为它认为 this.signinForm.get('rememberMe')
可能为空)。
是否可以告诉 typescript 在这种情况下,this.signinForm.get('rememberMe')
的 return 总是 AbstractControl
而不是 AbstractControl | null
?
我们可以通过用 as [type]
包装表达式来强制输入 TypeScript
。在您的情况下,它将是 (this.signinForm.get('rememberMe') as AbstractControl).value
.
使用!
运算符:
this.signinForm.get('rememberMe')!.value
我正在尝试让 typescript strictNullChecks
在 Angular 5 项目中工作。
我有一个表格:
this.signinForm = this.fb.group({
emailAddress: ['', NGValidators.isEmail()],
password: ['', Validators.required],
rememberMe: false,
});
我可以使用 this.signinForm.get('rememberMe')
获得 rememberMe
控件。然而,FormGroup#get
方法的 return 是 AbstractControl | null
,因此打字稿不喜欢 this.signinForm.get('rememberMe').value
(因为它认为 this.signinForm.get('rememberMe')
可能为空)。
是否可以告诉 typescript 在这种情况下,this.signinForm.get('rememberMe')
的 return 总是 AbstractControl
而不是 AbstractControl | null
?
我们可以通过用 as [type]
包装表达式来强制输入 TypeScript
。在您的情况下,它将是 (this.signinForm.get('rememberMe') as AbstractControl).value
.
使用!
运算符:
this.signinForm.get('rememberMe')!.value