我有一个 typescript 装饰器工厂,它控制台记录执行函数所花费的总时间、实际函数执行结果和传递给装饰器的参数。
例如
export function performaceLog(...args: any[]) {
return (target: Object, key: string, descriptor: TypedPropertyDescriptor<any>) => {
var msg = '';
if (args.length != 0) {
msg = args.map(arg => arg).join(' ');
}
if (descriptor === undefined) {
descriptor = Object.getOwnPropertyDescriptor(target, key);
}
if (typeof descriptor.value !== 'function') {
throw new SyntaxError('Only functions can be used with log decorators');
}
var originalMethod = descriptor.value.bind(target);
descriptor.value = function() {
var funcArgs: any = [];
for (var i = 0; i …Run Code Online (Sandbox Code Playgroud) javascript decorator typescript ecmascript-6 typescript-decorator