【发布时间】:2021-10-25 08:20:07
【问题描述】:
在一个打字稿项目中,当用户触发一个操作以及该操作完成时,大约有 2000 多个事件(方法)会被触发。因此,对于操作完成时触发的所有事件,我想要某种性能指标,因此参数“executionTime”应该是强制性的。 我计划在所有必须将执行时间作为参数存在的事件之上添加方法装饰器。下面是我的代码
class AllEvents {
@performanceDecorator()
public static firstEvent(param1: string, param2: string, executionTime: number): void {
//some tasks...
}
@performanceDecorator()
public static secondEvent(param1: string, param2: string): void {
//some tasks...
}
@performanceDecorator()
public static thirdEvent(param1: string, param2: string, executionTime: number): void {
//some tasks...
}
}
function performanceDecorator(value: boolean) {
//..................
}
我是 typescript 的新手,无法弄清楚我应该在 function performanceDecorator 的主体中编写的代码,这样如果某些方法没有名为“executionTime”的参数,它会抛出错误。
【问题讨论】:
-
由于 public static secondEvent 没有名为 'executionTime' 的参数,它应该会抛出错误。
-
您是否希望每个事件都有第三个参数,即执行时间? '因为命名参数在 javascript 中不起作用,它解释了传递给函数的参数的顺序。或者接受一个对象作为所有函数的参数,并期望其中有一个名为
executionTime的属性 -
@AkhilArjun 不是每个事件都会有第三个参数,只有选择性的。 '接受一个对象作为所有函数的参数,并期望一个名为 executionTime 的属性' 你能用一些代码 sn-p 解释上面的部分吗?
标签: javascript typescript decorator javascript-decorators