TypeScript 中的可变参数方法至少有一个参数
Expect at least one argument for variadic method in TypeScript
我有这样的方法:
getValues(...args: Array<string>) : Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
我使用的方法是这样的:
const c = b.getValues(); // compiles
在我的例子中不传递任何参数实际上是不正确的,只有至少传递一个参数才有意义。
有没有办法告诉 TypeScript 至少需要传递一个参数?
您可以添加一个具有强制参数的重载以强制调用者指定至少一个值,但仅使用一个剩余参数来保持实现签名(保持您的实现不变)
getValues(mandatory: string, ...args: Array<string>): Array<any>
getValues(...args: Array<string>): Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
您可以使用带有可变参数的 tuple-like 数组:
getValues(...args: [string, ...string])
我有这样的方法:
getValues(...args: Array<string>) : Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
我使用的方法是这样的:
const c = b.getValues(); // compiles
在我的例子中不传递任何参数实际上是不正确的,只有至少传递一个参数才有意义。
有没有办法告诉 TypeScript 至少需要传递一个参数?
您可以添加一个具有强制参数的重载以强制调用者指定至少一个值,但仅使用一个剩余参数来保持实现签名(保持您的实现不变)
getValues(mandatory: string, ...args: Array<string>): Array<any>
getValues(...args: Array<string>): Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
您可以使用带有可变参数的 tuple-like 数组:
getValues(...args: [string, ...string])