Angular 4.3.1
Angular CLI 1.2.3
打字稿2.3.4
Angular CLI 1.2.3
打字稿2.3.4
组件手稿文件:
public saveName: string; public overwrite: boolean;
以下标记失败,当我运行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>
尝试* ngIf =“!overwrite&& !! saveName”将saveName强制转换为布尔值
TypeScript为错误提供的原因大致是:您使用的字符串应该使用布尔值.
我认为它只发生在那种情况下的原因是因为如果你有真的||任何东西只会评估第一个(因为如果第一个是真的,整个表达式都将为真,无论其余的是什么)