Angular 中并没有计算属性的概念,但是可以使用 get 方法来实现类似的功能,这个功能还挺好用的,但是官方教程中并没有出现。

一个示例:

export class AppComponent {
  firstName = "彻底"
  lastName = "失败"
 
  get fullName() {
    // logic here ...
    return `${this.firstName} ${this.lastName}`
  }
}

然后就可以像使用其他属性一样在模版中使用 fullName 了:

<p>{{ fullName }}</p>

它会随着依赖属性 firstNamelastName 的变化而变化。

set 需要使用 ngOnChanges 来实现:

ngOnChanges(changes: SimpleChanges): void {
  if(changes['firstname'] || changes['lastName']) {
    // logic here ...
    this.update();
  }
}