覆盖其他库扩展的TypeScript定义

时间:2016-08-15 18:00:27

标签: typescript typescript-typings

我遇到过几个案例,其中一个库扩展了另一个库,特别是在我使用React和Redux时。

作为一个例子,假设我使用的JS库导出了一个可以像这样定义的函数:

function dispatch(action:IAction):void;

interface IAction {
    type: string;
}

我使用另一个JS库来增强dispatch函数以允许回调,这可以像这样定义:

function dispatch(action:IAction | IActionCallback):void;

interface IActionCallback {
    (dispatch:IDispatch):void;
}

问题是第二个库增加了第一个库。如何在打字中正确表达?或者可以吗?

1 个答案:

答案 0 :(得分:0)

那么你要做的就是将扩展库'augment'的声明文件放在原始库中。

redux-thunk declaration file几乎完全相同:它增加了redux的Dispatch接口。

有关更多信息,请I wrote a more detailed answer了解不同的可能性,如果您想要扩充另一个模块,具体取决于您的声明文件是否需要全局。或者查看打字稿手册中的page on declaration merging

如果您还有其他问题,我很乐意为您提供帮助。