Angular – 类型’string’不能赋值为’boolean’

前端之家收集整理的这篇文章主要介绍了Angular – 类型’string’不能赋值为’boolean’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Angular 4.3.1
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为错误提供的原因大致是:您使用的字符串应该使用布尔值.

我认为它只发生在那种情况下的原因是因为如果你有真的||任何东西只会评估第一个(因为如果第一个是真的,整个表达式都将为真,无论其余的是什么)

猜你在找的Angularjs相关文章