官术网_书友最值得收藏!

Property setters and getters

Our classes so far have had simple property declarations. However, for more complex scenarios, we can implement a property with a getter and a setter. When implementing getters and setters, generally, you'll need a private property to hold the property value:

  • getter is a function with the property name and the get keyword at the beginning and no parameters. Generally, this will return the value of the associated private property.
  • setter is a function with the same name with the set keyword at the beginning and a single parameter for the value. This will set the value of the associated private property.
  • The private property is commonly named the same as the getter and setter with an underscore in front.

Let's take a look at an example:

  1. Let's create getters and setters for the unitPrice property in our Product class. The setter ensures the value is not less than 0. The getter ensures null or undefined is never returned:
class Product {
name: string;

private _unitPrice: number;
get unitPrice(): number {
return this._unitPrice || 0;
}
set unitPrice(value: number) {
if (value < 0) {
value = 0;
}
this._unitPrice = value;
}
}
  1. Let's consume the Product class and try this out:
const table = new Product();
table.name = "Table";
console.log(table.unitPrice);
table.unitPrice = -10;
console.log(table.unitPrice);

If we run this, we should see two 0's in the console.

主站蜘蛛池模板: 钟祥市| 乐山市| 浦江县| 习水县| 山丹县| 韶关市| 缙云县| 延长县| 双城市| 鄱阳县| 义马市| 保靖县| 甘谷县| 肃南| 侯马市| 肇州县| 洛浦县| 搜索| 清苑县| 大兴区| 手机| 宁武县| 合肥市| 赤峰市| 榆社县| 南汇区| 乾安县| 新竹市| 江川县| 廉江市| 日照市| 九龙县| 无棣县| 青海省| 焦作市| 两当县| 南漳县| 铁岭县| 增城市| 巧家县| 陕西省|