≪ Today I learned. RSS購読
公開日
タグ
TypeScript
著者
ダーシノ(@bc_rikko)

TypeScript Decoratorを使った計測

TypeScript 5.0で新しいDecoratorが追加された。

※今回追加されたものはECMAScriptの仕様に則ったもので、TypeScriptに前からあったDecoratorはLegacy Decoratorとして区別される

Decoratorでパフォーマンスの計測をする

function measure(target: any, context: ClassMethodDecoratorContext) {
   function _measure(this: any, ...args: any[]) {
      const label = String(context.name)
      console.time(label)
      const result = target.call(this, args)
      console.timeEnd(label)
      return result
   }
   return _measure
}

class MyClass {
   @measure
   add(x: number, y: number) {
      return x + y
   }

   @measure
   subtract(x: number, y: number) {
      return x - y
   }
}

const cls = new MyClass()
cls.add(1,2)
cls.subtract(1,2)
add: 0.024169921875 ms
subtract: 0.01318359375 ms