Angular: 7.2.1 Класс ES6 ReferenceError: Невозможно получить доступ к «X» до инициализации - PullRequest
0 голосов
/ 03 июля 2019

У меня следующий класс TypeScript

export class Vehicule extends TrackableEntity {
  vehiculeId: number;
  constructor() {
    super();
    return super.proxify(this);
  }
}

моя цель машинописи в tsconfig.json настроена как es6:

"compilerOptions": {
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
}

Во время выполнения, здесь, в Chrome, кодне работает с:

ReferenceError: Cannot access 'Vehicule' before initialization
    at Module.Vehicule (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:10559:100)
    at Module../src/app/domain/models/VehiculeGpsBoxInfo.ts (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:11156:69)
    at __webpack_require__ (https://localhost:44338/runtime.js:84:30)
    at Module../src/app/domain/models/Vehicule.ts (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:10571:78)
    at __webpack_require__ (https://localhost:44338/runtime.js:84:30)
    at Module../src/app/components/dispositifsDATI/mainDATI/listDATI/listDATI.component.ts (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:6447:82)
    at __webpack_require__ (https://localhost:44338/runtime.js:84:30)
    at Module../src/app/components/dispositifsDATI/index.ts (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:3053:95)
    at __webpack_require__ (https://localhost:44338/runtime.js:84:30)
    at Module../src/app/components/dispositifsDATI/dispositifsDATI.routes.ts (https://localhost:44338/src-app-components-dispositifsDATI-dispositifsDATI-module.js:2982:64)

Мне нужно изменить es5 на es6, чтобы решить эту другую проблему .


РЕДАКТИРОВАТЬ: Импортируется файл GTIuleGpsBoxInfo.tsАВТОМОБИЛЬ, как это:

import { Vehicule } from "./Vehicule";

РЕДАКТИРОВАТЬ 2: Я бы сказал, что это может быть связано с веб-пакетом, способ, которым модули экспортируются / импортируются в генерируемых модулях.

РЕДАКТИРОВАТЬ 3: После дальнейшегоИсследования, похоже, не имеют ничего общего с кодом, показанным выше.Начался новый вопрос о webpack и ES6 .

1 Ответ

0 голосов
/ 03 июля 2019

, что имеет смысл, вы передаете локальный объект (Vehicle) родительскому классу в конструкторе return super.proxify(this);.

Имейте в виду, что локальный экземпляр Vehicle еще не создан (блок конструктора еще не завершен), поэтому вы не можете использовать этот объект в это время, вам нужно подождать, пока конструктор выполнит свою работу.

...