Angular 角型';字符串';不可分配给类型';布尔值';
角度4.3.1Angular 角型';字符串';不可分配给类型';布尔值';,angular,typescript,angular-cli,Angular,Typescript,Angular Cli,角度4.3.1 角度CLI 1.2.3 打字稿2.3.4 组件类型脚本文件: public saveName: string; public overwrite: boolean; 当我运行ng build--prod时,以下标记因类型“string”不可分配给类型“boolean”而失败 <span>{{!overwrite || saveName}}</span> OR <button *ngIf="!overwrite && saveNa
角度CLI 1.2.3
打字稿2.3.4 组件类型脚本文件:
public saveName: string;
public overwrite: boolean;
当我运行ng build--prod时,以下标记因类型“string”不可分配给类型“boolean”而失败
<span>{{!overwrite || saveName}}</span>
OR
<button *ngIf="!overwrite && saveName">Save</button>
{{!覆盖| |保存名称}
或
拯救
但是,它可以在以下情况下正常工作:
<span>{{saveName || !overwrite}}</span>
<span>{{overwrite || saveName}}</span>
<button *ngIf="saveName && !overwrite">Save</button>
<button *ngIf="overwrite && saveName">Save</button>
{{saveName | |!overwrite}
{{覆盖| |保存名称}
拯救
拯救
为什么我会犯这样的错误?
更具体地说,为什么只有在字符串前面有一个否定的布尔值时才会出现该错误?尝试*ngIf=“!overwrite&&!!saveName”
将saveName
转换为布尔值
TypeScript给出的错误原因大致是:您使用的字符串应该使用布尔值
我认为只有在这种情况下才会发生这种情况的原因是,如果你有true | |任何东西
只有第一个会被计算(因为如果第一个为true,那么整个表达式都会为true,不管其余的是什么)