我有这种类型:
type EventCallback<T> = (ev: T, anotherParam: string, lastParam: string) => void;
这个界面:
interface CustomEvent {
...
payload: any;
}
这个任意的类:
class ArbitraryClass {
methodOnArbitraryClass() {
// do stuff
}
}
然后我创建这种形状的函数:
const exampleCallback: EventCallback<CustomEvent> = (ev: { payload: CustomEvent }, anotherParam: "foo", lastParam: "bar") => {
// handle event
};
一切都很好。
现在,我想在不改变返回类型的情况下向此形状的回调添加参数,并且在仍使用EventCallback<CustomEvent>
的情况下,说我们将此类型称为DesiredCallback
,这样:
const newExampleCallback: DesiredCallback = (newParam: ArbitraryClass, ev: { payload: CustomEvent }, anotherParam: "foo", lastParam: "bar) => {
// handle event
};
我正在寻找一种方法,可以通过扩展DesiredCallback
类型来定义EventCallback
类型,这意味着仅定义新参数,并保留父项{{1} }类型,负责定义EventCallback
类型继承的其他参数。
我可以在位置参数列表中的任何位置(开头或结尾)对DesiredCallback
参数进行排序。