angular - 使用 Getter 和 Setter 的 Angular2 组件输入上出现重复标识符错误

标签 angular

我有一个 Angular 2 组件,它使用 @Input 类字段装饰器以及 getter 和 setter,如下所示:

import {Component, Input, Output, EventEmitter,FORM_DIRECTIVES, CORE_DIRECTIVES} from 'angular2/angular2';

@Component({
    selector: 'binding-test3',
    templateUrl: './components/binding-test/binding-test3.html',
    directives: [CORE_DIRECTIVES,FORM_DIRECTIVES]
})

export class BindingTest3 {

    @Input() value: string;
    @Output() valueChange:EventEmitter = new EventEmitter();

    private _value: string;

    get value() {
        console.log('getting value in BindingTest3: ',this._value);
        return this._value;
    }

    set value(value) {
        console.log('setting value in BindingTest3: ',value);
        this._value = value;
        this.valueChange.next(value);
    }
}

代码运行正确,但存在三个编译错误:

应用程序/组件/绑定(bind)测试/绑定(bind)测试3.ts(15,14):错误TS2300:重复的标识符“值”。 应用程序/组件/绑定(bind)测试/绑定(bind)测试3.ts(20,9):错误TS2300:重复的标识符“值”。 应用程序/组件/绑定(bind)测试/绑定(bind)测试3.ts(25,9):错误TS2300:重复的标识符“值”。

关于如何解决这个问题有什么想法吗?

最佳答案

将 @Input 与集合组合:

@Input() set value(value:string) { ... }

Attribute Directives 上有一个这样的例子开发者指南页面:

@Input() set defaultColor(colorName:string) {...}

关于angular - 使用 Getter 和 Setter 的 Angular2 组件输入上出现重复标识符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211165/

相关文章:

javascript - 尝试调用 Firebase 函数时的 Access-Control-Allow-Origin

javascript - 无法在 Angular4 GET 响应中查看 'Content-Disposition' header

javascript - Angular 形式不断返回 false(Angular 2)

events - ionic 2 : publish multiple events on Modal dismiss sometimes doesn't work

angular - 找不到路由时检索 404 状态。 Angular 6+ 和通用

javascript - 为什么我的 Angular 2 路由器不渲染我的组件?

rest - Angular2 模板试图在从 http.get 返回的值之前呈现值

Angular 2 - 刷新 ngx-datatable 列表问题

css - 在div的特定高度显示完整图像

css - mat-sidenav 动画期间滚动条的可见性