【发布时间】:2018-07-26 12:44:40
【问题描述】:
我在 JS 中有这段代码,我需要让它在 TypeScript 中工作。
它一直在说:
算术运算的右侧必须是“任意”、“数字”或枚举类型
sort(field, reverse, primer) {
var key = primer ?
function(x) {return primer(x[field])} :
function(x) {return x[field]};
reverse = [-1, 1][+!!reverse];
return function (a, b) {
return a = key(a), b = key(b), reverse * ((a > b)) - (b > a));
}
}
有什么想法吗?
【问题讨论】:
-
reverse * ((a > b))这是数字 * 布尔值。 -
@ASDFGerte 是,但
-将转换回数字。在任何情况下,OP 都有 Typescript 代码,而不是 JavaScript 代码。 -
@Pointy,是的,这正是错误消息的含义,这是一个编译时错误,因为他正在使用算术运算,其中一个操作数的推断类型是布尔值。
-
在应用任何算术之前将任何布尔值转换为数字
-
@ASDFGerte 啊,对,好点 :) 我不是 Typescript 用户,所以我猜我对它抱怨的内容没有太多感觉。
标签: javascript typescript