预期 2 个参数,但得到 1 个。 [重复]

Posted

技术标签:

【中文标题】预期 2 个参数,但得到 1 个。 [重复]【英文标题】:Expected 2 arguments, but got 1. [duplicate] 【发布时间】: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? 你做过研究吗? google.com/search?q=typescript+make+argument+optional 【参考方案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?)

【讨论】:

以上是关于预期 2 个参数,但得到 1 个。 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

即使使用:: from,我也得到了预期的类型参数错误[重复]

Angular @ViewChild() 错误:预期 2 个参数,但得到 1 个

打字稿错误:预期 0-1 个参数,但得到 2 个

TypeScript 2.6.1错误TS2554:预期2-3个参数,但得到1

错误 TS2554:预期 2 个参数,但使用 @ViewChild 得到 1 个

预期 3-4 个参数,但得到 2.ts FirebaseX Ionic 本机插件