如何在“打字稿”中的箭头功能上设置“装饰器”?

时间:2020-10-25 07:01:09

标签: typescript

我在typescript中创建一个装饰器,如下代码:

const measure = (
  target: Object,
  propertyKey: string,
  descriptor: PropertyDescriptor
) => {
  const originalMethod = descriptor.value;

  descriptor.value = function (...args) {
    const start = performance.now();
    const result = originalMethod.apply(this, args);
    const finish = performance.now();
    console.log(`Execution time: ${finish - start} milliseconds`);
    return result;
  };

  return descriptor;
};

它对于function method正常工作,但不适用于arrow function

以下是我的箭头功能的示例:

@measure
const underTest = () => {
...
}

由于第三个参数descriptor: PropertyDescriptor不是可选的,因此无法编译。我知道箭头功能被认为是属性而不是方法,因此我可以通过将第三个参数声明为可选参数descriptor?: PropertyDescriptor使其进行编译。但是我不知道如何在装饰器中调用arrow函数。

0 个答案:

没有答案