尝试将装饰器应用于课程时。方法,它似乎将它应用于课堂。我,不熟悉装饰器/注释,它很可能是用户错误。
这是一个非常快速的例子,我已经掀起了:
class Decorators {
static x (y, z) {
return method => {
// do stuff with y, z, method
// method should be the method that I decorate
}
}
}
class Foo {
@Decorators.x('foo', 'bar')
static main () {
// ...
}
}
正如您所看到的,在装饰器内部,该方法应该等于static main
方法,但是当我向装饰器添加console.log
以查看方法是什么时,它会记录{ {1}}(这是通过Babel翻译后的Foo类)......
据我所知,Babel.js正在将装饰器应用到类中,即使它已经在方法上设置了。不过我可能错了。
答案 0 :(得分:4)
第一个参数是target
(它可以是类构造函数 - 用于静态,原型 - 用于非静态,而实例,在属性的情况下)。第二个是方法的名称:
return (target, name, descriptor) => {
console.log(name);
}