【问题标题】:How to Invert boolean 'false' in typescript (ionic3 and cordova)如何在打字稿中反转布尔“假”(ionic3和cordova)
【发布时间】:2017-11-01 21:10:42
【问题描述】:

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

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

  • Android API 25
  • 科尔多瓦版本:7.0.1
  • “@angular/core”:“4.1.0”
  • “离子角”:“3.2.1”
  • “@ionic/cli-plugin-cordova”:“^1.2.1”
  • 打字稿 2.3.3

问题: 我只是想反转一个布尔值,如下面的 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

因此,“真”被反转,但“假”保持不变。因此,我在 Angular 中的 *ngIf-Directives 无法按预期工作。

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

【问题讨论】:

    标签: android angular cordova typescript ionic3


    【解决方案1】:

    这只是一个猜测,但它可能是一个不错的猜测,我认为您的 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) 
    

    确认。

    【讨论】:

    • 非常感谢。即使该值是使用“boolValue: boolean”定义的,但该定义不再适用于执行此代码的位置。
    • 是的。使用 typescript 尽早清理输入尤为重要,因为类型检查不会在运行时发生
    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多