Я получаю сообщение об ошибке «Ошибка типа: недопустимый конструктор» в журнале консоли при запуске этого кода CoffeeScript:
class Logger
constructor (@name) ->
log: (level, msg) ->
console.log(level, @name, msg)
debug: (msg) ->
log('DEBUG', msg)
new Logger('foo')
JavaScript:
Logger = (function() {
class Logger {
log(level, msg) {
return console.log(level, this.name, msg);
}
debug(msg) {
return log('DEBUG', msg);
}
info(msg) {
return log('INFO', msg);
}
};
constructor(function(name) { // <<--- Firefox throws TypeError here
this.name = name;
});
return Logger;
}).call(this);
Вместо этого coffee
долженсгенерируйте этот код:
Logger = class Logger {
constructor(name) { // <<-- No function() here!
this.name = name;
}
log(level, msg) {
return console.log(level, this.name, msg);
}
debug(msg) {
return log('DEBUG', msg);
}
info(msg) {
return log('INFO', msg);
}
};
Как я могу это исправить?
Пример работает в Chrome 75.
Firefox 67.