【问题标题】:How do I deal with prototype classes when working with typescript interfaces使用 typescript 接口时如何处理原型类
【发布时间】:2015-11-04 07:05:40
【问题描述】:

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

例如,如果我有,

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

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

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

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

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

【问题讨论】:

    标签: javascript typescript jsdata


    【解决方案1】:

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

    你在寻找什么是 mixins。并且有 mixins 的官方链接:https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Mixins.md 这表明 即使你没有定义它们,你也需要在类中声明它们(并且它们被混入)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 2017-03-04
      • 2020-01-01
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多