我需要一些有关Typescript类的解释,因为我有些不了解的内容。例如,我有一个带有某些属性的“汽车”类:
export class Car {
private _id: number;
private _brand: string;
private _model: string;
constructor(car) {
if (car) {
this.id = car.id;
this.brand = car.brand; // should be this.brand or this._brand ?
this.model = car.model;
}
}
set id(value: number) {
this._id = value;
}
get id(): number {
return this._id;
}
set brand(value: number) {
this._brand = value;
}
get brand(): number {
return this._brand;
}
set model(value: number) {
this._model = value;
}
get model(): number {
return this._model;
}
}
我必须将此对象发送到API。此人接受“品牌”和“型号”,而不接受“ _brand”或“ _model”。那么如何将好的模型发送到API?
这就是我通过console.log显示汽车对象时所拥有的东西:
汽车{id:“ 1”,品牌:“ Porsche”,型号:“ Carrera”,_ id:“ 1”,_ brand:“ Porsche”,_ model:“ Carrera”}
如果我删除“ _brand”,则“ brand”值未定义,但我想保留它。
delete myCar['_brand'];
console.log(myCar); // Car {_id:"1", "brand": undefined ...}
答案 0 :(得分:1)
private / public / protected仅在typescript编译器中有效,将内容发送到“常规javascript”仍会显示对象中的所有内容,包括私有变量。
要仅发送公共变量,必须创建一个单独的对象,该对象不包含私有变量。