2015-11-04 62 views
1

让我们建议我有一个数据库来处理大部分对象管理。 对于每个资源,它允许我选择一个基类,它将自己的原型函数添加到该基类中。如何在使用打字稿界面时处理原型类

因此,例如,如果我有,

interface IJob 
    { 
    openJob(); 
    } 
    class Job : IJob 
    { 
    openJob() => {console.log('open');} 
    } 

然后通过 Store.job.create创建我的工作(); 它返回类的一个实例,但它也用类似.save(),.update()等原型函数来装饰它。问题是,如果我尝试在作业实例上使用.save()它没有定义,因为接口没有定义它。现在,如果我定义它,它期望我在类中定义.save/.update,我不想这么做,因为商店已经为该类添加了原型函数。

有没有最好的方法来处理这个问题?

仅供参考我正在尝试使用js-data作为我的数据存储库。

回答

2

现在,如果我这样做定义它,它希望我去,我真的不希望这样做,因为店里已经加入原型功能的类的类定义.save/.update。

什么是你要找的是混入。并且存在mixin的官方链接:https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Mixins.md其中显示,即使您没有定义它们,也需要在类中声明这些链接(并且它们混合在一起)。