如何在打字稿(ionic3 和 cordova)中反转布尔值 'false'

How to Invert boolean 'false' in typescript (ionic3 and cordova)

我在应用程序中反转布尔值时遇到了一些意外问题。

环境: 我有一个应用程序,用 Ionic 3 用打字稿编写,我在 cordova 的帮助下将它部署在 android 设备上。

问题: 我只是想反转一个布尔值,如下面的 console.log 示例所示:

console.log('Clazz: ', clazz.name, ' : ', clazz.boolValue, ' : ', !clazz.boolValue)

输出:

Clazz:  A  :  true  :  false
Clazz:  B  :  true  :  false
Clazz:  C  :  true  :  false
Clazz:  D  :  false  :  false
Clazz:  E  :  false  :  false
Clazz:  F  :  false  :  false

因此,'true' 被反转,但 'false' 保持相同的值。因此,我在 Angular 中的 *ngIf-Directives 无法按预期工作。

问题: 我做错了什么吗?还是只是碰巧,我使用的组合软件版本确实存在故障?

这只是一个猜测,但它可能是一个不错的猜测,我认为您的 clazz.boolValue 在运行时可能以某种方式成为字符串而不是布尔值。这将描述您所看到的行为。

!'true' // evaluates to boolean value false
!'false' // also evaluates to boolean value false

尝试

console.log('Clazz: ', clazz.name, ' : ', clazz.boolValue, '|', typeof clazz.boolValue, ' : ', !clazz.boolValue) 

确认。