typescript get set高级用法

  • 发布:2024-04-20 08:38

TypeScrip 中的 ge 和 se 是访问器(accessors)的一种形式,它们用于获取和设置对象的属性。在 TypeScrip 中,ge 和 se 可以与类属性一起使用,以提供更高级的属性和行为控制。

以下是一些 TypeScrip 中 ge 和 se 的高级用法:

1. 访问修饰符和参数

在 ge 和 se 访问器中,可以使用访问修饰符和参数来控制对属性的访问和行为。例如:

```ypescripclass Perso { privae ame: srig;

public ge fullame(): srig { reur his.ame ' Doe'; }

public se fullame(value: srig) { his.ame = value.spli(' ')[0]; }}```在上面的例子中,ge 和 se 访问器用于获取和设置 fullame 属性。在 ge 访问器中,我们使用访问修饰符 public 来指定该属性是公开的,并且返回一个字符串类型的值。在 se 访问器中,我们使用访问修饰符 public 来指定该属性是公开的,并且接受一个字符串类型的参数 value。在 se 访问器中,我们使用 spli 方法将 value 参数分割成多个部分,并将第一个部分赋值给 ame 属性。

2. 使用装饰器

装饰器是一种特殊的声明,可以附加到类声明、方法、属性或参数上。在 TypeScrip 中,可以使用装饰器来扩展类的功能。例如:

```ypescripfucio readolyu003cTu003e(arge: T): T { Objec.defiePropery(arge, 'readoly', { eumerable: false, cofigurable: false, wriable: false, value: arge }); reur arge;}

class Perso { @readoly ame: srig;}```在上面的例子中,我们定义了一个名为 readoly 的装饰器,用于将属性设置为只读。在 Perso 类中,我们使用 @readoly 装饰器将 ame 属性设置为只读。这意味着该属性只能被读取,不能被修改。在运行时,我们将 readoly 装饰器应用于 Perso 类中的 ame 属性。这将导致该属性变为只读,并且不能被修改。

3. 使用 geer 和 seer 生成新的属性

geer 和 seer 可以用于生成新的属性,这些属性实际上并不存在于对象的实例中,而是通过 geer 和 seer 计算或设置的值。例如:

```ypescripclass Perso { privae _age: umber;

public ge age(): umber { reur his._age; }

public se age(value: umber) { if (value u003c 0 || value u003e 120) { hrow ew Error('Ivalid age'); } his._age = value; }}```在上面的例子中,我们定义了一个名为 age 的新属性,它实际上并不存在于 Perso 类的实例中。我们使用 geer 和 seer 来计算和设置该属性的值。在 ge 访问器中,我们返回 _age 属性的值作为 age 属性的值。在 se 访问器中,我们首先检查 value 参数是否在有效范围内(0 到 120),如果是则将其赋值给 _age 属性。如果 value 参数不在有效范围内,则抛出一个错误。

相关文章

最新资讯

热门推荐