这就是我想要做的。我们在类的结构中接收JSON数据。因此我们可以声明一个接口,如下所示:
export interface IElement {
id : number;
name : string;
}
然后该类如下:
export class Element implements IElement {
id : number;
name : string;
constructor (src : IElement) {
this.id = src.id;
this.name = src.name;
}
}
然后,我们将JSON数据转换为<IElement>并将其传递给类构造函数。然后可以将IElement或Element传递给构造函数,这样生活会很顺利。
但是...我想强制使用getter和setter进行访问。所以我想做的是:
export class Element implements IElement {
private id : number;
private name : string;
constructor (src : IElement) {
this.id = src.id;
this.name = src.name;
}
getId () : number {
return this.id;
}
getName () : string{
return this.name;
}
}
以上对我来说仍然可以正常工作,因为在构造函数中,我允许访问这些变量。但是,如果将它们设置为private,则Element不再实现IElement,因为它不满足IElement中的约定。
有没有办法做到这一点?如果需要的话,Element不必实现IElement,但如果这样做,则可以使生活更清洁。
您的公共表面积可以代替该接口,或者不是。类不能代替的IElement
(它不应该,如果你想迫使人们使用干将!),所以它不能implement
接口。
由于您没有说出为什么要让人们使用getter,所以我不知道这是否合适,但是您可以在类中使用property getter:
export interface IElement {
id: number;
name: string;
}
export class Element implements IElement {
private _id: number;
private _name: string;
constructor (src: IElement) {
this._id = src.id;
this._name = src.name;
}
get id() {
return this._id;
}
get name() {
return this._name;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句