首页 > 解决方案 > 重复声明 TypeScript Getter Setter

问题描述

我正在尝试为 TypeScript 中的字段创建 getter 和 setter。

searchFilter: string;

get searchFilter(): string {
  return this.searchFilter;
}

set searchFilter(value: string) {
  this.searchFilter = value;
}

这给出了错误:

Duplicate identifier 'searchFilter'.

我在 Angular 项目中使用 TypeScript。

@angular/cdk: 6.0.1
@angular/cli: 1.7.4
typescript: 2.5.3

标签: angulartypescriptsettergetter

解决方案


您不能拥有与用于 getter 或 setter 的名称相同的属性。

所以创建另一个私有属性(_searchFilter)来存储本地状态

private _searchFilter: string;

get searchFilter(): string {
  return this._searchFilter;
}

set searchFilter(value: string) {
  this._searchFilter = value;
}

推荐阅读