TypeScript装饰器的命名约定

时间:2019-07-19 10:14:57

标签: typescript naming-conventions typescript-decorator

我有一个将错误处理程序附加到给定函数的装饰器。装饰器接受对名为errorHandlerManager的自定义对象的引用,该对象基本上在错误类型和错误处理程序函数之间保持映射。当修饰的函数引发给定类型的错误时,将调用与此类型关联的处理函数。

function handleErrors(errorHandlerManager: IErrorHandlerManager) {
   return (target: any, key: string | symbol, descriptor: PropertyDescriptor) => {
      const fn = descriptor.value;
      descriptor.value = function (...args: any[]) {
         return new Promise((resolve, reject) => {
            fn.apply(this, args)
               .then((result: any) => {
                  resolve(result);
               })
               .catch((err: Error) => {
                  let handler = errorHandlerManager.getHandler(err.constructor.name);
                  if (typeof handler === 'function') {
                     handler();
                  } else {
                     reject(err);
                  }
               });
         });
      }
   };
}

// ...

@handleErrors(errorHandlerManager)
async loadData() {
   // Do something that might throw an error
}

我的问题是此装饰器的专有名称是什么?我在考虑errorHandler,但听起来有些混乱,因为可能会认为错误处理程序是修饰函数。还有其他建议吗?

0 个答案:

没有答案