1 && v-6ren">
gpt4 book ai didi

typescript : "boolean"类型与 "number"类型不可比较

转载 作者:行者123 更新时间:2023-12-05 00:57:16 26 4
gpt4 key购买 nike

我一定错过了什么。我有这个功能:

  transform(value: number): string {
switch (value) {
case value > 1 && value < 86400:
return 'this';
break;
case value > 86401 && value < 259200:
return 'that';
break;
}
}

当我尝试编译它时,我得到了这些错误:

ERROR in src/app/time-transform.pipe.ts:10:12 - error TS2678: Type 'boolean' is not comparable to type 'number'.

10 case value > 1 && value < 86400:
~~~~~~~~~~~~~~~~~~~~~~~~~~
src/app/time-transform.pipe.ts:13:12 - error TS2678: Type 'boolean' is not comparable to type 'number'.

13 case value > 86401 && value < 259200:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我希望能够比较数字。我在这里错过了什么?

最佳答案

那是因为 switch/case uses strict comparison ,即 === ,并且您正在比较 value ,它是一个数字,针对一个表达式,例如value > 1 && value < 86400被评估为 bool 值。

您应该改用 if/else 语句。请注意,您的 switch/case 代码没有默认返回,无论如何都会引发错误:您需要捕获 value <= 1 和 value >= 259200 的原因:

transform(value: number): string {
if (value > 1 && value < 86400) {
return 'this';
} else if (value > 86401 && value < 259200) {
return 'that';
} else {
return 'something else';
}
}

关于 typescript : "boolean"类型与 "number"类型不可比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60618893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com