typescript - Typ 'IArguments' není typ pole
Snažím se vytvořit vlastní logger. Docela jednoduché, ale snažím se zbavit chyb, aby výstup nebyl nečistý. Mám něco takového:
@Injectable()
export class Logger {
log(...args: any[]) {
console.log(...arguments);
}
}
ale v konzoli to dává následující chyby:
Logger.ts(6,9): Error TS2346: Supplied parameters do not match any signature of call target.
a
Logger.ts(6,24): Error TS2461: Type 'IArguments' is not an array type.
Jaký je správný způsob, jak to udělat?
Odpověď č. 1
Volání console.log je nesprávné, prostě předávejte dále přijatý parametr:
@Injectable()
export class Logger {
log(...args: any[]) {
console.log(args);
}
}
Nebo vytisknout jako skutečnou konzoli:
@Injectable()
export class Logger {
log(...args: any[]) {
console.log.apply(console, args);
}
}
Odpověď č. 2
tohle mi fungovalo:
console.log(...Array.from(arguments));
