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

    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