2016-06-24 51 views
3

我正在尝试创建自定义记录器。很简单,但我试图摆脱错误,所以我没有泥泞的输出。我有这样的事情:类型'IArguments'不是阵列类型

@Injectable() 
export class Logger { 
    log(...args: any[]) { 
     console.log(...arguments); 
    } 
} 

但它给在控制台以下错误:

Logger.ts(6,9): Error TS2346: Supplied parameters do not match any signature of call target. 

Logger.ts(6,24): Error TS2461: Type 'IArguments' is not an array type. 

什么是做到这一点的正确方法?

+0

'args' /'arguments' - 错字? – rinukkusu

回答

3

的电话的console.log不正确,只是通过提前收到的paramater:

@Injectable() 
export class Logger { 
    log(...args: any[]) { 
     console.log(args); 
    } 
} 

或者打印作为一个真正的控制台:

@Injectable() 
export class Logger { 
    log(...args: any[]) { 
     console.log.apply(console, args); 
    } 
} 
+0

第二种情况是我正在寻找的。非常感谢! –