重复声明TypeScript Getter Setter

san*_*der 2 getter setter typescript angular

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

searchFilter: string;

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

set searchFilter(value: string) {
  this.searchFilter = value;
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Duplicate identifier 'searchFilter'.
Run Code Online (Sandbox Code Playgroud)

我在Angular项目中使用TypeScript.

@angular/cdk: 6.0.1
@angular/cli: 1.7.4
typescript: 2.5.3
Run Code Online (Sandbox Code Playgroud)

yur*_*zui 6

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

因此,创建另一个私有属性(_searchFilter)来存储本地状态

private _searchFilter: string;

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

set searchFilter(value: string) {
  this._searchFilter = value;
}
Run Code Online (Sandbox Code Playgroud)

  • 不是它只是一个惯例 (3认同)
  • 短绒棉可能会警告您使用`_` (2认同)
  • @sander不会将变量设为私有,应该注意,这是违反[Angular准则](https://angular.io/guide/styleguide#properties-and-methods)的约定。 (2认同)