Mar*_*ada 11 typescript angular-cli angular
Angular 4.3.1
Angular CLI 1.2.3
打字稿2.3.4
组件打字稿文件:
public saveName: string;
public overwrite: boolean;
Run Code Online (Sandbox Code Playgroud)
以下标记失败,当我运行时,类型'string'不能分配给'boolean'类型ng build --prod
<span>{{!overwrite || saveName}}</span>
OR
<button *ngIf="!overwrite && saveName">Save</button>
Run Code Online (Sandbox Code Playgroud)
但是,它适用于以下情况:
<span>{{saveName || !overwrite}}</span>
<span>{{overwrite || saveName}}</span>
<button *ngIf="saveName && !overwrite">Save</button>
<button *ngIf="overwrite && saveName">Save</button>
Run Code Online (Sandbox Code Playgroud)
为什么我会收到这个错误?
更具体地说,为什么只有在字符串前面有一个否定的布尔值时才出现该错误?
0mp*_*rdy 11
尝试*ngIf="!overwrite && !!saveName"强制saveName转换为布尔值
TypeScript为错误提供的原因大致是:您使用的字符串应该使用布尔值.
我认为它只发生在那种情况下的原因是因为如果你true || anything只有第一个将被评估(因为如果第一个是真的,整个表达式将是真的,无论其余的是什么)
| 归档时间: |
|
| 查看次数: |
7947 次 |
| 最近记录: |