/ / Використання ES-декораторів у класі отримують та встановлюють методи - javascript, decorator, ecmascript-next

Використовуючи ES декоратори на класі, вибирайте і встановлюйте методи - javascript, декоратор, ecmascript-next

все гаразд, за словами декоратора пропозиція мати декоратора на класному геттері чи сетері? Або вони дозволені лише звичайними методами? наприклад

class Foo extends Bar {

@override
get someProp() {
super.someProp + 2;
}
}

деякі бібліотеки / рамки надають таких декораторів. Але, наприклад, вавілонський парсер Вавілон позначає це як помилку!

Відповіді:

2 для відповіді № 1

Я думаю, що це цілком добре з точки зорудекоратора, який слід застосувати до поля сетера / геттера, в основному будь-якого поля. Оскільки властивість "нормальне" та властивість setter / getter відрізняються за типом дескриптора властивості - дескриптор даних проти дескриптор доступу а декоратор застосовується до дескриптора властивостей, він може бути застосований до будь-якої власності, включаючи властивості "setter / getter" та "method".

Наприклад, ви можете змінити сетер на "звичайне" властивість всередині декоратора:

function removesetter(klass, prop, descriptor) {
return {
value: 5,
writable: true
}
}

class Foo {
@removesetter
get someProp() {
return 3;
}
}

const f = new Foo();
console.log(f.someProp); // 5