有没有一种方法可以扩展TypeScript中的函数类型以添加​​其他参数?

时间:2020-06-29 23:11:04

标签: javascript typescript callback

我有这种类型:

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参数进行排序。

0 个答案:

没有答案