【发布时间】:2019-11-08 10:33:05
【问题描述】:
我有一个可能很奇怪的情况,我正在尝试用 typescript 建模。
我有一堆函数,格式如下
type State = { something: any }
type InitialFn = (state: State, ...args: string[]) => void
我希望能够创建一个表示InitialFn 的类型,并删除第一个参数。类似的东西
// this doesn't work, as F is unused, and args doesn't correspond to the previous arguments
type PostTransformationFn<F extends InitialFn> = (...args: string[]) => void
这可能吗?
【问题讨论】:
-
我不太懂typescript,但是去掉第一个参数的initialFn,不完全是另一个函数吗?
-
在普通 js 中,如果你想消除提供前导参数的需要,你可以使用 bind() 设置参数以在调用返回的函数时传递,即
a=(b,c)=>{}; d=a.bind(null,6);这样调用d(7),b将永远是6和c将是任何第一个传递给d的 arg 在这种情况下是 7。不确定 ts 语法是什么
标签: javascript typescript generics