我正在查看一个继承的typescript项目,并希望为某些接口添加一些功能(例如地址模型上的ToString()),使它们不仅仅是一个DTO。
我遇到的问题是接口都是使用我们的API中的TypeLite自动生成的。这意味着如果我向其中一个接口添加方法,则下次运行TypeLite进程时将删除此方法。
所以从本质上讲,我想知道是否可以在单独的文件中扩展接口?类似于C#中的扩展方法。
或者,TypeLite是否有更好的选择,因为我并不喜欢将所有内容放入单个文件中。
答案 0 :(得分:0)
是的,您可以使用declaration merging在单独的文件中扩充接口。我不知道你的项目的布局是什么样的,但是这样的东西可能会起作用:
import { GeneratedInterface } from "./interfaceLocation";
declare module "./interfaceLocation" {
interface GeneratedInterface {
newMethod(param: string): number;
}
}
如果没有,您可以从上面的链接文档中找出它或发布更完整的示例。
希望有所帮助;祝你好运!