如何告诉 Typescript *在这种情况下*函数的返回类型永远不会为 null



我正在尝试获取打字稿strictNullChecks在Angular 5项目中工作。

我有一个形式:

this.signinForm = this.fb.group({
  emailAddress: ['', NGValidators.isEmail()],
  password: ['', Validators.required],
  rememberMe: false,
});

我可以使用this.signinForm.get('rememberMe')获得rememberMe控件。但是,FormGroup#get方法的返回是AbstractControl | null,因此Typescript不喜欢this.signinForm.get('rememberMe').value(因为它认为this.signinForm.get('rememberMe')可能为null)。

是否可以告诉Typescript,在此实例中, this.signinForm.get('rememberMe')的返回始终是 AbstractControl ,而不是 AbstractControl | null

使用!操作员:

this.signinForm.get('rememberMe')!.value

我们可以通过用as [type]包裹表达来强制键入TypeScript。在您的情况下,将是(this.signinForm.get('rememberMe') as AbstractControl).value

最新更新