【发布时间】:2021-01-22 10:57:06
【问题描述】:
我在这里找到了许多类似的问题,但我找不到我的特定问题。我想要一个泛型类型,它定义了其回调所采用的参数类型,并且“无参数”应该是一个选项。
我不想要的:回调参数是可选的,因为当回调被调用时,参数可以传递或不传递
我想要的:当我指定泛型参数时,我希望能够说回调不能带参数。
type Caller<T> = (
callback: (params:T)=>void
) => void
// none of this works:
let caller1:Caller<void> = function(
callback: ()=>void
){}
let caller2:Caller<never> = function(
callback: ()=>void
){}
let caller3:Caller<undefined> = function(
callback: ()=>void
){}
// this works-ish but is ugly:
let caller4:Caller<void> = function(
callback: (_:void)=>void
){}
我也读过这个https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html,但我认为我的问题比这个高一级。
我该怎么做?
【问题讨论】:
标签: typescript generics callback optional-parameters