示例:
function Getter(target: any, key: string): void {
let getter = () => this[key];
/* create "foobar" property from "_foobar" */
Object.defineProperty(target, removeUnderscores(key), {
get: getter,
enumerable: true,
configurable: true
});
}
class Foo {
@Getter
private _foobar: string;
constructor() {
this._foobar = "Hello World" // OK
console.log(this.foobar) // Compiler error
}
}
let foo = new Foo();
console.log(foo.foobar) // Compiler error
我想可以公开_foobar
并将其重命名为foobar
以避免创建新的属性名称,但尝试从外部修改该属性不会导致编译 - 时间错误,它会在内部或外部修改时导致运行时错误。
答案 0 :(得分:0)
console.log(this.foobar)//编译器错误
您无法根据TypeScript装饰器基础结构的当前语义删除此编译器错误。