要接受undefined的Typescript rest参数

x8diyxa7  于 2023-03-31  发布在  TypeScript
关注(0)|答案(1)|浏览(94)

我有一个关于函数参数的练习,我仍然不能弄清楚:
下面的maximum函数的类型不正确。请修改rest参数的类型以允许在rest参数中使用undefined。您不需要更改函数体;它的if条件已经忽略了未定义的值。

function maximum(...numbers: Array<number>) {
  let max = -Infinity;
  for (const n of numbers) {
    if (n !== undefined && n > max) {
      max = n;
    }
  }
  return max;
}

我试着修改它如下,但仍然得到一个错误的答案。有没有其他方法可以改变类型接受undefined?

function maximum(...numbers: Array<number> | undefined) {
    let max = -Infinity;
    for(const n of numbers) {
        if(n !== undefined  && n > max) {
            max = n;
        }
    }
    return max;
}
yxyvkwin

yxyvkwin1#

Rest参数必须是数组

// pseudocode
type FunctionArguments<Rest extends Array<any>>

因此您需要

function maximum(...numbers: Array< ( number | undefined ) >)

相关问题