如何从typescript注解中获取类名

t40tm48m  于 2023-06-30  发布在  TypeScript
关注(0)|答案(2)|浏览(153)

我在方法级使用了typescript注解。我希望能够从注解中获取类或文件名。

const some = (arg: string) => {
  return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
    const originalMethod = descriptor.value;
    descriptor.value = function (...args: any[]) {
      // get class name here <------------------------
      const result = originalMethod.apply(this, args);
      return result;
    };
  };
};

class Foo(){

  @some("xyz")  
  bar(){
    // do something
  }
}

你知道吗?

esyap4oy

esyap4oy1#

对于一个示例成员,装饰器是用 * 类的原型 * 调用的。

function some(arg: string) {
  return (targetPrototype: any, propertyKey: string, descriptor: PropertyDescriptor) => {
    const originalMethod = descriptor.value;
    const className = targetPrototype.constructor.name;
    descriptor.value = function (...args: any[]) {
        console.log(className);
    };
  };
};
ztmd8pv5

ztmd8pv52#

你应该小心依赖它。缩小捆绑包倾向于更改对象名称,这可能会违反逻辑。更多信息请参见此页-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#telling_the_constructor_name_of_an_object

相关问题