tl; dr-我想合并一个与我自己输入的第三方接口,这样导入原始接口的任何人都将获得合并后的接口。 这可能吗?
我正在开发一个用JavaScript和AngularJS编写的项目,我们已经开始切换到TypeScript。
这样,我们正在使用AngularJS typings from DefinitelyTyped,但我们希望对其进行一些自定义。
例如,我们想要更改IController
接口,以使$onInit()?: void
的定义变为$onInit(): void
以使其成为必需。
我可以通过将声明与自己的接口合并来实现此目的:
interface IController {
$onInit(): void;
}
但是我还没有弄清楚如何将合并后的接口应用于IController
的所有用法。
这一点很重要,因此我可以强制所有控制器都具有此功能,而又不要让案件流连忘返。没有导入正确的界面。
可以做到吗?如果可以,怎么办?
PS:我已经尝试了许多不同的名称空间组合,但是我在该领域并不强壮,所以也许我还没有遇到合适的咒语。
答案 0 :(得分:1)
您不能将可选方法与必需方法合并。 (到目前为止,您似乎还没有真正合并任何东西,只是声明了一个单独的接口供您的代码使用,而不是原始的IController
。)您必须将@types/angular
的输入分叉为您的项目;请参阅this answer,以了解实现此操作的可能方法的摘要。