Angular 4.1.0和strictNullChecks - 对象在模板中可能是“null”

时间:2017-05-01 15:26:21

标签: angular typescript

我将Angular升级到4.1.0并在我的项目中启用了“strictNullChecks”。现在,我有很多错误,例如模板中的(.html)

  
    

对象可能是'null'

  

他们都是这样的.html模板:

<form class="ui equal width form attached segment" [formGroup]="usrFrm">
    <h4 class="ui dividing blue header">User Name</h4>
    <div class="fields">
        <div class="required field">
            <label>Title</label>
            <select class="ui dropdown">
                <option default>&lt;select title&gt;</option>
                <option value="1">Ms.</option>
                <option value="0">Mr.</option>
            </select>
        </div>
    </div>
    <div class="fields">
        <div class="required field" [class.error]="usrFrm.touched && usrFrm.get('firstName').invalid">
            <label>First name</label>
            <input type="text" formControlName="firstName" placeholder="First Name" />
        </div>
        <div class="field" [class.error]="usrFrm.touched && usrFrm.get('middleName').invalid">
            <label>Middle name</label>
            <input type="text" formControlName="middleName" placeholder="Middle Name" />
        </div>
        <div class="required field" [class.error]="usrFrm.touched && usrFrm.get('lastName').invalid">
            <label>Last name</label>
            <input type="text" formControlName="lastName" placeholder="Last Name" />
        </div>
    </div>
...

那么,有没有办法解决这个问题而不关闭“strictNullChecks”?

3 个答案:

答案 0 :(得分:0)

好吧,现在还有一个关于Typescript的问题 - https://github.com/angular/angular/issues/16357。所以,我们需要等待另一个版本。

答案 1 :(得分:0)

您是否尝试过usrFrm.controls.firstName.invalid。我知道是getting无效状态的另一种方式,但是当我出现Object is possibly 'null' TS提示弹出窗口时,对我有用。

答案 2 :(得分:0)

更改严格检查设置: 在 tsconfig.json 中

    compilerOptions:{

       "suppressImplicitAnyIndexErrors": true,
       "strictNullChecks":false,
       "strictPropertyInitialization": false,

     }