作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!