【问题标题】:Angular 4.1.0 and strictNullChecks - Object is possibly 'null' in templateAngular 4.1.0 和 strictNullChecks - 对象在模板中可能为“null”
【发布时间】:2017-09-29 00:26:32
【问题描述】:

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

对象可能是“空”

它们都引用这样的 .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”的情况下解决这个问题?

【问题讨论】:

  • TypeScript 不会对您的 Angular 模板进行类型检查,就 TypeScript 而言,这些模板只是字符串。我认为您需要更仔细地查看该错误消息。
  • 您如何构建您的应用程序? ngc?

标签: angular typescript


【解决方案1】:

好的,目前 Typescript 存在问题 - https://github.com/angular/angular/issues/16357。所以,我们需要等待另一个版本。

【讨论】:

    【解决方案2】:

    你试过usrFrm.controls.firstName.invalid。我知道getting 无效状态的另一种方式,但当我弹出Object is possibly 'null' TS 提示时为我工作。

    【讨论】:

      【解决方案3】:

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

          compilerOptions:{
      
             "suppressImplicitAnyIndexErrors": true,
             "strictNullChecks":false,
             "strictPropertyInitialization": false,
      
           }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-25
        • 1970-01-01
        • 2021-04-14
        • 2020-07-29
        • 2021-03-09
        • 2020-08-23
        • 2021-08-08
        • 2022-11-24
        相关资源
        最近更新 更多