我有类似的方法:
getValues(...args: Array<string>) : Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
我使用这样的方法:
const c = b.getValues(); // compiles
在我看来,不传递任何参数实际上是不正确的,只有传递至少一个参数才有意义。
有没有办法告诉TypeScript至少需要传递一个参数?
答案 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);
});
}