【问题标题】:Expected 2 arguments, but got 1. [duplicate]预期 2 个参数,但得到 1 个。 [重复]
【发布时间】:2018-09-07 06:47:33
【问题描述】:

我在ts中有函数

 export function minutesToHoursAndMinutes(m, zeroPadded) {
    if (zeroPadded == null) { zeroPadded = false; }
    let hours:any = Math.floor(m / 60);
    if (zeroPadded && (`${hours}`.length === 1)) { hours = `0${hours}`; }
    let minutes:any = m % 60;
    if (zeroPadded && (`${minutes}`.length === 1)) { minutes = `0${minutes}`; }
    if ((hours === 24) && (minutes === '00')) {
      hours = 23;
      minutes = 59;
    }
    return [hours, minutes];
  };

并尝试像这样使用它

if (("#t-time-range").length > 0) {
$("#t-time-range").slider({
  range: "min",
  value: filter_max.max_traveltime,
  min: filter_max.min_traveltime,
  max: filter_max.max_traveltime+15,
  step: 15,
  slide(event, ui) {
    const hms = FilterFunctions.minutesToHoursAndMinutes(ui.value );
    $("#t-time").val(`Max ${hms[0]}t ${hms[1]}m`);
    return $('#filter_travel_time').val(ui.value);
  }
});
const hms = FilterFunctions.minutesToHoursAndMinutes($("#t-time-range").slider("value"));
$("#t-time").val(`Max ${hms[0]}t ${hms[1]}m`);
$('#filter_travel_time').val($("#t-time-range").slider("value"));

}

但我对争论有误

这样

预期有 2 个参数,但得到了 1 个。

如何使 2 个参数成为可选参数?

【问题讨论】:

  • FilterFunctions.minutesToHoursAndMinutes(ui.value ) 什么?
  • FilterFunctions.minutesToHoursAndMinutes($("#t-time-range").slider("value")) 你只给这两个调用一个参数...
  • 我知道,但我可以选择第二次争论吗? @Taplar
  • 你可以只传入null作为第二个参数或者在类型签名中将zeroPadded更改为zeroPadded?

标签: typescript


【解决方案1】:

尝试将滑块对象的最后一个属性更改为

slide: function(event, ui) {
    const hms = FilterFunctions.minutesToHoursAndMinutes(ui.value );
    $("#t-time").val(`Max ${hms[0]}t ${hms[1]}m`);
    return $('#filter_travel_time').val(ui.value);
}

【讨论】:

  • minutesToHoursAndMinutes 仍然需要两个参数
  • 尝试在 2 次调用期间将 false 作为参数传递并删除第一行 if (zeroPadded == null) { zeroPadded = false; } 来自 minutesToHoursAndMinutes 函数。
  • 所以你的解决方案(隐藏在 cmets 中)是:“传递两个参数”
  • 考虑到sn-p的其余部分已经是纯意大利面了...
【解决方案2】:

也许设置一个默认值,比如

export function minutesToHoursAndMinutes(m, zeroPadded=null).

这样这个值就已经设置好了,如果不传参数,会默认为null值。

【讨论】:

    【解决方案3】:

    ? 使参数可选。 Reference.
    export function minutesToHoursAndMinutes(m, zeroPadded?) {

    【讨论】:

      猜你喜欢
      • 2022-08-24
      • 1970-01-01
      • 2020-05-19
      • 2021-11-08
      • 2019-11-04
      • 2020-11-07
      • 2023-03-11
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多