我的论点怎么能与任何签名不匹配" console.log的?

时间:2017-04-05 08:34:38

标签: typescript

一个简单的课程:

export class Logger {
  constructor(private name: string) {}

  debug(...args: any[]) {
    console.debug(...args)
  }

  log(...args: any[]) {
    console.log(...args)
  }
}

据我所知,我可以将任何内容传递给console.logconsole.debug,所以我将如何获得:

src/app/logging.ts(6,5): error TS2346: Supplied parameters do not match any signature of call target.
src/app/logging.ts(10,5): error TS2346: Supplied parameters do not match any signature of call target.

执行.apply(args)是否有效,但那么...args语法是什么意思?

我使用的是TypeScript版本2.2.2。

1 个答案:

答案 0 :(得分:1)

console.log定义为

log(message?: any, ...optionalParams: any[]): void;

尝试切换到

export class Logger {
  constructor(private name: string) {}

  debug(msg?: any, ...args: any[]) {
    console.debug(msg, ...args)
  }

  log(msg?: any, ...args: any[]) {
    console.log(msg, ...args)
  }
}