https://github.com/tc39/proposal-decorators#class-accessors
[[クラス (JavaScript)|クラス]]の[[アクセサー (JavaScript)|アクセサー]]に対して設定する[[デコレーター (JavaScript)|デコレーター]]。
サンプルコードは[[TypeScript]]の[[デコレーター (TypeScript)|デコレーター]]。
```ts
function upper(value: Function, context: ClassGetterDecoratorContext) {
return function (this: unknown) {
console.log("Execute upper > function");
const ret = value.call(this).toUpperCase();
return ret;
};
}
class Human {
constructor(
public firstName: string,
public lastName: string,
) {}
@upper
get fullName(): string {
return `${this.firstName}-${this.lastName}`;
}
}
console.log("Before initialize Human");
const me = new Human("tadashi", "aikawa");
console.log(me);
console.log(me.fullName);
console.log("After initialize Human");
```
```console
Before initialize Human
Human { firstName: 'tadashi', lastName: 'aikawa' }
Execute upper > function
TADASHI-AIKAWA
After initialize Human
```