【发布时间】:2019-09-27 18:59:24
【问题描述】:
在 TypeScript 中描述对象的正确方法是什么(可能不仅在 TypeScript 中)。例如,我有一些 get http 请求返回给我一个具有 2 个参数(名称和 id)的对象。 我看到 3 种方式来描述它。 首先是创建接口
export interface MyObject {
name: string;
id: number;
}
第二种方式是创建一个类
export class MyObject {
public name: string;
public id: number;
}
或同一个类,但有 getter 和 setter
export class MyObject {
private _name: string;
private _id: number;
public get name(): string {
return this._name;
}
public set name(value: string) {
this._name = value;
}
// similarly for id
}
那么什么是最明确和最正确的方法。我主要使用接口来描述一个对象。但是我见过很多项目,其中对象是由类描述的,这三种方法的优缺点是什么。有没有最合适的?
【问题讨论】:
-
我更喜欢接口,因为它只是描述一个对象,而不是一个为实例化一个对象提供模板的类。
-
第三版无法编译。私有属性和 setter/getter 应该有不同的名称。以
private _name: string和private _id: number为例。
标签: typescript class oop interface