我有一个应用程序,它有很多模态。我写了一个fn,它将每个模态Map到打开和关闭的fns,所以我得到了这样的语法:
open.modalname(timeout, callback, props)
我使用的是react,在某些情况下,我将open fn传递给onClick回调函数,它会注入一个事件,而我对此毫无用处,因此我有一个助手fn,它会忽略它。
这些是我得到的函数类型
export type Output<T extends Object, F> = Record<keyof T, F>;
export type Open = Output<
typeof modals,
(
timeout?: number | React.MouseEvent<HTMLElement> | object,
callback?: number | (() => void),
props?: object | (() => void),
_?: object | (() => void)
) => void
>;
export type Close = Output<typeof modals, () => void>;
我允许在我的助手中使用两种语法:(timeout?,callback:?,props?)或(props?)
有没有一种方法可以写Open类型,这样我就可以得到一个更好的自动完成,但允许所有可能的类型。
(timeout?: number, callback?: () => void, props?: object) | (props?: object)
1条答案
按热度按时间o2gm4chl1#
我真的不知道你想实现什么,但是如果你只是想接受每个函数调用的不同选项,为什么不直接这样做呢: