在TypeScript中期望可变参数方法的至少一个参数

时间:2018-07-17 06:22:50

标签: typescript tsc

我有类似的方法:

  getValues(...args: Array<string>) : Array<any> {
    return args.map(k => {
      return this.shared.get(k);
    });
  }

我使用这样的方法:

const c = b.getValues(); // compiles

在我看来,不传递任何参数实际上是不正确的,只有传递至少一个参数才有意义。

有没有办法告诉TypeScript至少需要传递一个参数?

1 个答案:

答案 0 :(得分:3)

您可以添加具有强制性参数的重载,以强制调用者指定至少一个值,但仅使用rest参数来保持实现签名(保持实现不变)

getValues(mandatory: string, ...args: Array<string>): Array<any>
getValues(...args: Array<string>): Array<any> {
    return args.map(k => {
        return this.shared.get(k);
    });
}