gpt4 book ai didi

javascript - Typescript/JavaScript - 如何将剩余参数作为参数而不是数组传递给后续函数?

转载 作者:行者123 更新时间:2023-12-02 22:49:27 25 4
gpt4 key购买 nike

typescript /JavaScript 问题。

我创建了自己的 log() 方法,可以根据需要切换日志记录(并不重要),但现在我使用一个简单的 console.log()。这是代码:

log(message: any): void {
console.log(message)
}

最近我决定传递多个参数,因为 console.log 支持任意数量的参数,使用如下:console.log(a, b, c) 。所以,我决定使用rest parameter并将我的方法调整为以下内容:

log(...message: any[]): void {
console.log(message)
}

效果很好。但是,当我将 log 方法与任何数字参数一起使用时,console.log 输出一个数组,而不是单独的值,就像我直接调用它一样。我可以理解为什么,因为该消息可以被视为数组类型的单个参数。但是我如何将数组传递给console.log(或任何其他类似的函数)并告诉它不是数组类型的单个参数,而是多个参数?

我真的很想避免定义 10 个可选参数,按原样传递它们:)

最佳答案

至少有 2 个选项可以实现此目的:

选项 1:

log(...message: any[]): void {
console.log(...message)
}

选项 2:使用Function.prototype.apply

例如

log(...message: any[]): void {
console.log.apply(null, message)
}

这将按照您的预期应用您的参数数组。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

关于javascript - Typescript/JavaScript - 如何将剩余参数作为参数而不是数组传递给后续函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58242503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com