Я говорю о:
class MyAction {
}
class MyActionEdit extends MyActionNew { // <-- error pointing here
}
class MyActionNew extends MyAction {
}
Я получаю следующую ошибку: Uncaught ReferenceError: Cannot access 'MyActionNew' before initialization.
Я не создаю экземпляр до загрузки всех js. Так что я не понимаю, почему здесь не работает подъем. Проблема в том, что я не могу изменить порядок определений классов (они загружаются из разных файлов и объединяются в один большой скрипт - в этом примере 3 объединенных файла).
Я уже читал этот и многие другие вопросы, но никто не ответил на мой вопрос.
Это здесь работает, например:
class MyAction {
}
let test: MyActionNew = new MyActionNew(); // <- Hoisting works here
class MyActionEdit extends MyAction {
}
class MyActionNew extends MyAction {
}
Как я могу справиться с этим? Я не знаю, поможет ли это, но я использую typescript для создания файлов javascript. Может есть что?
Связано: Класс Typescript: класс будет поднят, когда Я использую два класса?
Я прочитал все вопросы с поднятием тега здесь, в stackoverflow, но не нашел ответа.
MyActionNew
и вниз вы расширяетеMyAction
ведь они теперь правильные - person Ifaruki   schedule 11.09.2020why hoisting is not working here
- потому что определения классов не поднимаются - person Jaromanda X   schedule 11.09.2020MyAction
→MyActionNew
→MyActionEdit
. Просто порядок объявления перепутан. - person deceze♦   schedule 11.09.2020