获取打字稿中的最后一个函数参数
Get the last function argument in typescript
我正在尝试解构一个函数的参数,该函数只关心传入的最后一个参数,将其值绑定到变量 next
;以下在普通 js 中工作正常,节点 10:
> function f(...{length, [length - 1]: next}) { console.log(next) }
> f(1,2,3,4)
4
然而打字稿中的相同构造给我:
error TS2501: A rest element cannot contain a binding pattern.
function (...{length, [length - 1]: next}) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我该如何解决这个问题?
非常有趣的问题,因为基本上声明 - "TS is superset of JS" 在这里不起作用。
事实证明,当我们尝试同时在析构和展开运算符中使用绑定模式时,我们会得到一个错误:
目前在 TS 诊断消息文件中存在 A_rest_element_cannot_contain_a_binding_pattern_2501
的显式错误
还有一个 open Pull Request 和 TypeScript 存储库,它可能会解决这个问题 "issue"(不确定这是一个问题还是其他问题)。
但您始终可以为您的任务选择这种方法:
function f(...args) {
console.log(args[args.length - 1]);
}
我正在尝试解构一个函数的参数,该函数只关心传入的最后一个参数,将其值绑定到变量 next
;以下在普通 js 中工作正常,节点 10:
> function f(...{length, [length - 1]: next}) { console.log(next) }
> f(1,2,3,4)
4
然而打字稿中的相同构造给我:
error TS2501: A rest element cannot contain a binding pattern.
function (...{length, [length - 1]: next}) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我该如何解决这个问题?
非常有趣的问题,因为基本上声明 - "TS is superset of JS" 在这里不起作用。
事实证明,当我们尝试同时在析构和展开运算符中使用绑定模式时,我们会得到一个错误:
目前在 TS 诊断消息文件中存在 A_rest_element_cannot_contain_a_binding_pattern_2501
的显式错误还有一个 open Pull Request 和 TypeScript 存储库,它可能会解决这个问题 "issue"(不确定这是一个问题还是其他问题)。
但您始终可以为您的任务选择这种方法:
function f(...args) {
console.log(args[args.length - 1]);
}