【发布时间】:2021-12-12 11:52:35
【问题描述】:
假设我有一个这样的“中间人”函数的类型定义:
type Middleman = (
callback: () => any
) => any
此函数执行“某些任务”,然后调用“回调”并返回其值。现在,Middleman 和回调都被键入以返回任何内容,但我想强烈键入这个。
我尝试过像这样引入类型参数:
type Middleman<T> = (
callback: () => T
) => T
但这在尝试创建此函数的实现时会导致问题:
const middlemanImpl: Middleman<T> = cb => cb(); // Error, no way to get T here
正如 Middleman 所期望的“T”,并且似乎无法从每个调用站点推断它。
有没有办法实现我在这里想要实现的目标?即:泛型函数的类型定义,它返回作为参数传递的函数的返回值的类型?
【问题讨论】:
标签: typescript