TS:使用其余参数键入高阶函数 ...args
Posted
技术标签:
【中文标题】TS:使用其余参数键入高阶函数 ...args【英文标题】:TS: Typing higher order function with rest params ...args 【发布时间】:2021-11-04 09:13:57 【问题描述】:我在 Typescript 中编写了一个小辅助函数,但收到错误消息 A spread argument must either have a tuple type or be passed to a rest parameter.ts(2556)
export type TDemethodise = (f: Function) => (...args: any[]) => void
export const demethodise: TDemethodise = (fn) => (...args): void => fn.bind(...args);
我很不确定是否要输入这个。是否可以在不大量更改功能的情况下键入它?
【问题讨论】:
【参考方案1】:Function.bind()
将thisArg
作为其第一个参数。从您的代码中并不完全清楚您期望 this
在“去方法化”函数中绑定到什么,但例如将其绑定到自身 fn.bind(fn, ...args)
会起作用。
【讨论】:
以上是关于TS:使用其余参数键入高阶函数 ...args的主要内容,如果未能解决你的问题,请参考以下文章