在此示例中,函数声明了一个变量inComingColor
,然后在后续的while循环中使用该变量。
priority(to: Position, cols: Color[][]) {
let index = to.index + 1;
let colorMatchCount = 0;
let inComingColor = cols[to.col][to.index]; // no-unused-vars error
while(index < 4) {
if(inComingColor = cols[to.col][index]) { // variable used here
colorMatchCount++;
index++;
} else return 0;
}
return colorMatchCount;
}
但是,此变量的实例旁边会出现tslint错误:
'inComingColor'被分配了一个值,但从未使用过
@ typescript-eslint / no-unused-vars
我的猜测是短绒棉正在抱怨,因为可能会出现大于3的指数。然后,while循环将永远不会执行,并且inComingColor
将永远不会被使用。 (这实际上不会发生,因为这些Color []类型的长度限制为4)。
无论如何,而不必禁用在线错误,是否有一种整洁的方法来重构此功能,以使错误消失?
编辑:看起来棉短绒刚刚发出了无用的错误。我错了if语句不应使用赋值运算符:
if(inComingColor === cols[to.col][index]) { // correct: error disappears
答案 0 :(得分:2)
您需要在if检查之前分配它:
select pc.*
from product_company pc
where (
select count(distinct pc1.price)
from product_company pc1
where pc1.companyName = pc.companyName and pc1.price > pc.price
) = 1
或者只是检查您为其分配的值:
inComingColor = cols[to.col][index];
if(inComingColor) { // variable used here