Class TS接口或类

Class TS接口或类,class,typescript,interface,Class,Typescript,Interface,可能是个愚蠢的问题,但我刚刚和一位同事进行了辩论。 在对象、类或接口中应该使用什么? 我需要知道一个函数返回一个特定类型的对象,应该使用什么 export class Person{ name: string; lastName: strig; dob: Date; constructor() {} } 或 对我来说,创建对象的最好方法是使用接口!因为您可以轻松地将其作为JSON对象存储在Firebase之类的数据库中。。。您没有函数属性 然后您可以使用带有函

可能是个愚蠢的问题,但我刚刚和一位同事进行了辩论。 在对象、类或接口中应该使用什么? 我需要知道一个函数返回一个特定类型的对象,应该使用什么

export class Person{
    name: string;
    lastName: strig;
    dob: Date;

    constructor() {}
}


对我来说,创建对象的最好方法是使用接口!因为您可以轻松地将其作为JSON对象存储在Firebase之类的数据库中。。。您没有函数属性

然后您可以使用带有函数的类来管理对象类型接口

接口

export interface IObject {
    id : string,
    name: string,
    description : string
}
然后上课

import { IObject  } from "../interfaces/iobject";
export class ObjectService {
    myObject = {} as IObject
    constructor() {}
    getDescription(anObject : IObject){ return anObject.description  }
}

如果需要添加实际行为,则需要一个类。否则,您可能希望更多地共享您的用例,因为TypeScript有许多定义类型的方法-因此您不仅有
接口
可供选择-还有文字类型、隐式(推断)类型、类型别名。。。
import { IObject  } from "../interfaces/iobject";
export class ObjectService {
    myObject = {} as IObject
    constructor() {}
    getDescription(anObject : IObject){ return anObject.description  }
}