English 中文(简体)
何种用途用于代号中的只数据物体:级或接口?
原标题:What to use for data-only objects in TypeScript: Class or Interface?
  • 时间:2016-12-09 20:00:16
  •  标签:
  • typescript

我拥有一只数据“阶级”(我们称之为POCO物体的网络世界),没有任何方法甚至建筑商。 例子有:客户、产品、用户实体。

最初,我开始使用打字栏,但现在我认为,宣布它们为接口可能更好。 从业绩角度看,而不仅仅是...... 只是,在C#中,我们重新使用了接口,用于不同东西,而用于“POCO”(Plain-old-clr-object,或“只数据”物体),我们只使用一个类别(有时甚至固定)。

什么是/em>以什么方式将其放在文字上?

请注意,我基本上理解(我认为)技术阶级和界面之间的差别(即接口是一种汇编时的构造),但我试图找到哪一种适合这个案例

P.S.:我看到了类似的问题(如,即),但没有人明确和明确地对这个特定问题提出反对意见,因此,请不要将这一问题尽可能重复或以意见为依据(因为它是:)

最佳回答

使用接口,班级甚至没有关闭。

人们开始书写字典,突然认为这些字体为have/em>,出于某种原因使用课堂。 但它们没有。 班级是ES6的特征,他们的工作是优秀的,但是,如果他们掌握了公正的数据,则只是数据。

A major problem with using classes is that they won t serialize/deserialize like you expect over the wire, so things like instanceof checks won t work.

th一条规则是,如果与某些方法相关的没有<>内地国<>m>,并且没有必要采用传统的办事处综合系统,则不使用一类。 这甚至延伸到<条码> 静态类别 ——使用<条码> 姓名> /条码> /<条码>。

问题回答

使用类别:,参数:

// Immutable data object
class Person {
  constructor(readonly firstName: String, readonly lastName: String) {}
}

// Mutable data object
class Person {
  constructor(public firstName: String, public lastName: String) {}
}

我在C# C++中使用了字面数据,正如我的所有途径一样。 Java,只使用依赖注射的接口。 对于操纵数据来说,没有考虑接口。

在我的申请模式中,如果我需要书写一种使用同一类别某些数据的方法,那么这个类别就更适合采用这种方法。 更换贵方财产的添加接收器和设计器具有极大的灵活性。

当我需要制造物体时,我不是一片 j,我不喜欢使用数据只指任何东西都能够使用的财产。 我通过为这一类别定义的建筑商,树立了等级。

当我从一个服务部门获得数据时,我不把一个班子降为: 我淡化了json数据,我用这些数据得出了我的榜样。 这里是利用所收到的数据建立我的模型的方法:

// ajax callback for diaries
onReceiveDiary( jsonDiary : any )
{
   let newDiary = new Diary ( jsonDiary );

   // now I can call methods on the object:
   let ok : boolean = newDiary.CheckIfCompleted();
}

在“一”类中,我加上一名建筑商,唯一一名依赖“json”物体:

export class Diary
{
   title : string;
   article : Article;

   constructor( json : any )
   {
      // the trick for setting all the object properties
      $.extend( this, json);

      this.article = new Article( json.article );
   }
}

或者,我们可以建立一个工厂,利用违约构造建造物体:

   let newDiary = new Diary ();
   $.extend( newDiary, jsonDiary );
   newDiary.article = $.extend( new Article(), jsonDiary.article );




相关问题
store data in memory with nestjs

I am trying to persist some data in my nestjs server so I can then use that data in my client app through http requests. I have created a products.service.ts file with the function getAllData() that ...

React Hook Form Error on custom Input component

I am having a problem when I use react hook form + zod in my application, in short the inputs never change value and I get the following error in the console: Warning: Function components cannot be ...

Updatable promises using proxy in JavaScript

EDIT: I ve updated this question, and the old question is moved here. A POC can be found on this jsfiddle or the snippet below GOAL: The goal here is to make or rather simulate a promise that can be ...