javascript - 调用具有多个参数的函数的更简单方法?

标签 javascript typescript ecmascript-6

例如,我在 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/

相关文章:

javascript - 无法运行ReactJS的Hello World示例

angular - 如何等待服务 HTTP 调用在组件中完成

javascript - 在通过标记数组映射之前,reactjs nullcheck

php - 用于更改 true 与 false 函数值的复选框

javascript - 从代码隐藏 asp.net 调用 Javascript

typescript - 如何使用 Typescript 在 JSX 内的 html 属性上使用 onclick

typescript - 从 .d.ts 文件导出 "mixed"声明 - Typescript

javascript - React.Component 和 Component 有什么区别?

javascript - 访问和更改 javascript 类中的数组值

javascript - 点击后jquery延迟,允许不同的选择