例如,我在 Javascript/Typescript 中获得了以下函数(真正的函数是从 OpenApiGenerator 生成的 REST Api)
doStuffAsGet(a: string, b: string; c: string; d: string, e: string, ...)
现在我只会调用带有参数 c 的函数,其余的应该是未定义的。 有没有一种方法不必为了提供这个参数而编写许多 undefined?
最佳答案
可选参数 - 使用名称后缀 ?
使参数可选:
function doStuffAsGet(a: string, b: string, c: string, d?: string, e?: string) {
}
doStuffAsGet('a', 'b', 'c');
doStuffAsGet('a', 'b', 'c', 'd');
doStuffAsGet('a', 'b', 'c', 'd', 'e');
您可以将 a、b 和 c 设置为必需,但将其余的设置为可选(您可以根据需要使用 ?
选择您必须拥有的)。
您还可以使用默认值 - 使用 =
运算符指定默认值:
function doStuffAsGet(a: string, b: string, c: string, d: string = '', e: string = '') {
}
doStuffAsGet('a', 'b', 'c');
doStuffAsGet('a', 'b', 'c', 'd');
doStuffAsGet('a', 'b', 'c', 'd', 'e');
和其余参数,其中使用了名称前缀...
。这会将所有后续参数收集到一个数组中。
function doStuffAsGet(a: string, ...others: string[]) {
}
doStuffAsGet('a', 'b', 'c');
doStuffAsGet('a', 'b', 'c', 'd');
doStuffAsGet('a', 'b', 'c', 'd', 'e');
doStuffAsGet('a', 'b', 'c', 'd', 'e', 'f');
注意在上面的例子中,a
是必需的,所以你不能用零参数调用函数。同样,您可以选择需要的和不需要的。
这些的组合可能会满足您的需求。
关于javascript - 调用具有多个参数的函数的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53210210/