为rest参数强制至少一个参数

时间:2016-08-03 13:13:51

标签: arrays typescript ecmascript-6 variadic-functions

我为此寻找答案但没有找到答案:
有没有办法强制至少有一个参数用于rest参数?
在下面的代码中,对logArray的所有三次调用都是有效的,但我希望第一次调用失败。

function logArray(...elements: number[]) {
    elements.forEach(x => console.log(x));
}

logArray(); // should fail but works
logArray(1);
logArray(1,2);

1 个答案:

答案 0 :(得分:4)

一种可能的解决方案可能是在rest参数前添加一个常规参数,然后将其连接回函数体中,如此

function logArray(e1: number ,...erest: number[]) {
    [e1, ...erest].forEach(x => console.log(x));        
}