Есть ли более безопасная альтернатива arguments.callee.name
?
Моя команда работает над библиотекой для приложений Chromecast, которая интенсивно использует наследование классов.Мы хотели бы убедиться, что некоторые методы переопределяются при расширении класса.
Для этого мы разработали вспомогательную функцию для удаления этих методов:
const methodNotImplemented = (method) => throw new Error(`Method ${method} not implemented`);
Теперь было бы здорово, если бы мы могли просто сделатьчтобы избежать передачи имени метода вручную, но я получаю всевозможные предупреждения от eslint и тому подобное.
const methodNotImplemented = (method) => throw new Error(`Method ${method || argument.callee.name} not implemented`);
Это нормально, поскольку код будет работать только в Chrome или есть альтернатива, о которой кто-нибудь знает?
Пример использования:
class Base {
// method that should be overridden by application
requiredMethod() {
methodNotImlemented(' Base.requiredMethod')
};
initialize() {
requiredMethod();
}
}
// мы хотим убедиться, что методы здесь переопределены
class MyPlugin extends Base {
}