Chr*_*all 6 javascript typescript angular
我现在已经在一些地方看到了这种情况,但还没有找到任何答案。
我很好奇‘!’是什么?bang 在角度语法中起作用。
来自Angular 文档:
非空断言运算符 (!)
从 Typescript 2.0 开始,您可以使用该
--strictNullChecks标志强制执行严格的空检查。然后,TypeScript 确保没有变量是无意的null或undefined。在此模式下,类型化变量默认不允许使用
null和。undefined如果您未分配变量或尝试将null或分配给类型不允许undefined的变量, 类型检查器会抛出错误。nullundefined如果类型检查器无法确定变量是否将在运行时存在,它也会引发
null错误undefined。您可能知道这不会发生,但类型检查器不知道。您告诉类型检查器,通过应用后修复非空断言运算符 (!)不会发生这种情况。Angular非空断言运算符 (!)在 Angular 模板中具有相同的用途。
例如,在使用
*ngIf检查hero已定义后,您可以断言hero属性也已定义。Run Code Online (Sandbox Code Playgroud)<!-- No hero, no text --> <div *ngIf="hero"> The hero's name is {{hero!.name}} </div>当 Angular 编译器将模板转换为 TypeScript 代码时,它会阻止 TypeScript 报告
hero.name可能为null或 的 内容undefined。与安全导航运算符不同,非空断言运算符不防范
nullorundefined。相反,它告诉 TypeScript 类型检查器暂停对特定属性表达式的严格 null 检查。当您打开严格的空检查时,您将需要此模板运算符。否则是可选的。
| 归档时间: |
|
| 查看次数: |
6227 次 |
| 最近记录: |