我遇到过几个案例,其中一个库扩展了另一个库,特别是在我使用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;
}
问题是第二个库增加了第一个库。如何在打字中正确表达?或者可以吗?
答案 0 :(得分:0)
那么你要做的就是将扩展库'augment'的声明文件放在原始库中。
redux-thunk declaration file几乎完全相同:它增加了redux的Dispatch
接口。
有关更多信息,请I wrote a more detailed answer了解不同的可能性,如果您想要扩充另一个模块,具体取决于您的声明文件是否需要全局。或者查看打字稿手册中的page on declaration merging。
如果您还有其他问题,我很乐意为您提供帮助。