我有一个奇怪的问题:在我的一个类中,有一个boolean类型的只读属性。当我尝试检查此属性时,得到了意外的结果。这是一个代码示例:
// vorgang is a reference to the class, isEK is the property
let test = this.vorgang.isEK;
// Just for testing
let test2 = test ? true : false;
console.log(test + ' -> ' + test2);
这是结果输出:
true -> true
false -> true
我想念什么?
答案 0 :(得分:0)
在字符串的情况下可能会发生。您的
this.vorgang.isEK
可能是字符串。
如果是这样,只需将您的let test2 = test ? true : false;
行替换为let test4 = test3 == true ? true : false;
,其中 ==仅检查值,而不检查数据类型 。
您的工作片段类似于以下内容-
// getting it static
let test = "false";
// Just for testing
let test2 = test == true ? true : false;
console.log(test + ' -> ' + test2);
答案 1 :(得分:0)
这是一个布尔属性:
get isEK(): boolean {
return this.art && this.art.netto;
}
我的比较不起作用时,输出正确。这让我发疯了。
答案 2 :(得分:0)
只有一种可能的解释:在运行时,Realm
变量包含字符串test
。
'false'
尝试对属性let test = 'false';
let test2 = test ? true : false;
console.log(test + ' -> ' + test2); // false -> true
使用此代码:
isEK
您还可以在运行时使用以下命令检查变量类型:
get isEK(): boolean {
return this.art && this.art.netto ? true : false;
}