Javascript “string | number | string[]”类型的参数不能分配给“string”类型的参数
我的typescript文件中有代码 这是代码Javascript “string | number | string[]”类型的参数不能分配给“string”类型的参数,javascript,jquery,typescript,Javascript,Jquery,Typescript,我的typescript文件中有代码 这是代码 slide(event, ui) { $(`#stops_${i}`).val(`Max ${ui.value} ${__('byten')}`); $(`#filter_stops_${i}`).val(ui.value); if ((ui.value > 0) && ($('#filter_direct').val() === '1')) { $('#filter_direct').pa
slide(event, ui) {
$(`#stops_${i}`).val(`Max ${ui.value} ${__('byten')}`);
$(`#filter_stops_${i}`).val(ui.value);
if ((ui.value > 0) && ($('#filter_direct').val() === '1')) {
$('#filter_direct').parent().children('.Switch').removeClass('On').addClass('Off');
$('#filter_direct').val('0');
}
let stop_sum = 0;
$('.filter_stops').each(function() {
return stop_sum += parseInt($(`#filter_stops_${$(this).attr('id').split('_')[1]}`).val());
});
if ((stop_sum === 0) && ($('#filter_direct').val() === '0')) {
$('#filter_direct').parent().children('.Switch').removeClass('Off').addClass('On');
return $('#filter_direct').val('1');
}
}
但在这一排:
return stop_sum += parseInt($(`#filter_stops_${$(this).attr('id').split('_')[1]}`).val());
当我尝试进行拆分时,出现了此错误
[ts]
“string | number | string[]”类型的参数不能分配给“string”类型的参数。
类型“number”不可分配给类型“string”
如何修复它?val可以根据html元素的下划线类型返回几种类型之一。如果您确信这将始终是一个字符串,那么最简单的解决方案是使用类型断言来创建字符串
另一种选择是使用类型防护装置来区分不同的情况:
let value = $(`#filter_stops_${$(this).attr('id').split('_')[1]}`).val();
if (typeof value === "string") {
return stop_sum += parseInt(value);
}
if (typeof value === "number") {
return stop_sum += value;
} else {
throw Error("Unsupported value type")
}
你能帮我摆好小提琴吗?请阅读:
let value = $(`#filter_stops_${$(this).attr('id').split('_')[1]}`).val();
if (typeof value === "string") {
return stop_sum += parseInt(value);
}
if (typeof value === "number") {
return stop_sum += value;
} else {
throw Error("Unsupported value type")
}