Decorators on functions

后端 未结 3 1292
有刺的猬
有刺的猬 2021-01-31 14:31

I see that babel.js decorators (available in \"stage 1\") implement the spec at https://github.com/wycats/javascript-decorators. It appears that decorators are limited to (1) cl

相关标签:
3条回答
  • 2021-01-31 14:48

    To execute a decorator, you evaluate an expression and doing that prevents hoisting (even for a variable declaration, the right-hand side of an assignment stays put). Therefore, it is not compatible with function declarations being hoisted.

    As a work-around, I suggested that function expressions, generator function expressions and arrow functions could be enabled to be decorated:

    const func = @someDecorator('abc') (x, y) => { return x + y };
    

    Alas, that wasn’t met with much enthusiasm: Decorators for functions

    0 讨论(0)
  • 2021-01-31 14:48

    I think the problem is function decorator has not been ES7 draft.

    Of course, you still can implement your function decorator by yourself

    0 讨论(0)
  • 2021-01-31 14:56

    You certainly have a point here.

    But as neo_blackcap pointed out, function decorator are not part of the ES7 decorators draft.

    So, the best thing you can do is to start discussion on the corresponding tracker to attract community attention to your proposal.

    ES7 decorators are on their first stage of development second stage of development, meaning that their API is still under development and could undergo any change.

    0 讨论(0)
提交回复
热议问题