在处理typescript接口时,如何处理原型类

时间:2015-11-04 07:05:41

标签: javascript typescript jsdata

我们建议我有一个处理大部分对象管理的数据库。 对于每个资源,它允许我选择一个基类,并将其自己的原型函数添加到基类中。

例如,如果我有,

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

然后通过创建我的工作 Store.job.create(); 它返回类的一个实例,但它也用.save(),。update()等原型函数来装饰它

问题在于,如果我尝试在作业实例上使用.save(),它是未定义的,因为界面没有定义它。现在,如果我确定它,它希望我在类中定义.save / .update,因为商店已经在这个类中添加了原型函数。

有没有最好的方法来解决这个问题?

作为参考,我试图使用js-data作为我的数据存储库。

1 个答案:

答案 0 :(得分:2)

  

现在如果我确定它,它希望我在类中定义.save / .update,我不想做,因为商店已经在类中添加了原型函数。

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