Свойство объекта статического класса не определено во время выполнения - PullRequest
0 голосов
/ 10 февраля 2019

У меня странная проблема

У меня есть этот класс

export class PageList {

  static readonly About: IPageInfo = Object.seal({
    menuTitle: 'About',
    url: 'about',
    trainingType: undefined,
    trainingName: undefined
  });

  static readonly PrivacyFull: IPageInfo = Object.seal({
    menuTitle: 'FullPrivacyDetails',
    url: 'privacy-full',
    trainingType: undefined,
    trainingName: undefined
  });
}

Я использую его в компоненте следующим образом:

import { PageList } from 'src/app/models/classes/page-list.model';

@Component({
  selector: 'app-privacy',
  templateUrl: './privacy.page.html',
  styleUrls: ['./privacy.page.scss']
})
export class PrivacyPage implements OnInit {
    onSeeAll() {
        this.navService.push(PageList.PrivacyFull)
    }
}

In this.navService.push Я получаю статический элемент PrivacyFull с menuTitle как undefined.

Undefined

Поиск в Chrome dev Tools говорит об этомundefined, но если я вижу файл (понравившийся DevTools), он такой, как я его написал.

Correct class

Я что-то здесь не так делаю?Я действительно не вижу этого.

Или Typescript / Webpack компилирует что-то неправильно?

EDIT: Когда я вижу сгенерированный модуль webpack, он также не определен.

Edit В случае необходимости, здесь мои package.json зависимости

{
  "dependencies": {
    "@angular/common": "^7.2.4",
    "@angular/core": "^7.2.4",
    "@angular/forms": "^7.2.4",
    "@angular/http": "^7.2.4",
    "@angular/platform-browser": "^7.2.4",
    "@angular/platform-browser-dynamic": "^7.2.4",
    "@angular/router": "^7.2.4",
    "@ionic-native/admob-free": "^5.0.0",
    "@ionic-native/android-permissions": "^5.0.0",
    "@ionic-native/app-rate": "^5.0.0",
    "@ionic-native/app-version": "^5.0.0",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/device": "^5.0.0",
    "@ionic-native/file": "^5.0.0",
    "@ionic-native/file-chooser": "^5.0.0",
    "@ionic-native/file-path": "^5.0.0",
    "@ionic-native/market": "^5.0.0",
    "@ionic-native/music-controls": "^5.0.0",
    "@ionic-native/screen-orientation": "^5.0.0",
    "@ionic-native/secure-storage": "^5.0.0",
    "@ionic-native/splash-screen": "^5.0.0",
    "@ionic-native/status-bar": "^5.0.0",
    "@ionic-native/toast": "^5.0.0",
    "@ionic/angular": "^4.0.1",
    "@ionic/storage": "^2.2.0",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "@saninn/logger": "^0.4.0",
    "cordova-plugin-admob-free": "0.25.0",
    "cordova-plugin-android-permissions": "1.0.0",
    "cordova-plugin-app-version": "0.1.9",
    "cordova-plugin-apprate": "1.4.0",
    "cordova-plugin-device": "2.0.2",
    "cordova-plugin-file": "6.0.1",
    "cordova-plugin-filechooser": "1.2.0",
    "cordova-plugin-filepath": "1.5.1",
    "cordova-plugin-market": "1.2.0",
    "cordova-plugin-music-controls": "2.2.0",
    "cordova-plugin-screen-orientation": "3.0.1",
    "cordova-plugin-secure-storage": "3.0.1",
    "cordova-plugin-x-toast": "2.7.2",
    "core-js": "^2.5.4",
    "rxjs": "~6.3.3",
    "zone.js": "~0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/architect": "^0.12.4",
    "@angular-devkit/build-angular": "^0.12.4",
    "@angular-devkit/core": "~7.2.3",
    "@angular-devkit/schematics": "~7.2.3",
    "@angular/cli": "^7.2.3",
    "@angular/compiler": "^7.2.4",
    "@angular/compiler-cli": "^7.2.4",
    "@angular/language-service": "^7.2.4",
    "@commitlint/cli": "^7.5.0",
    "@commitlint/config-conventional": "^7.5.0",
    "@ionic/angular-toolkit": "^1.3.0",
    "@ionic/v4-migration-tslint": "^1.7.0",
    "@types/jasmine": "^2.8.16",
    "@types/jasminewd2": "~2.0.3",
    "@types/jest": "^23.3.14",
    "@types/node": "^10.12.21",
    "@types/webaudioapi": "0.0.27",
    "codelyzer": "^4.5.0",
    "fs-extra": "^7.0.1",
    "husky": "^1.3.1",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "jest": "^23.6.0",
    "jest-preset-angular": "^7.0.0-alpha.2",
    "karma": "~3.1.4",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ngx-spec": "^1.0.1",
    "npm-run-all": "^4.1.5",
    "prettier": "^1.16.4",
    "pretty-quick": "^1.10.0",
    "protractor": "~5.4.0",
    "ts-mockito": "^2.3.1",
    "ts-node": "^8.0.2",
    "tslint": "~5.12.0",
    "typescript": "~3.1.6"
  },
  "husky": {
    "hooks": {
      "pre-commit": "run-s format:fix",
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-admob-free": {},
      "cordova-plugin-apprate": {},
      "cordova-plugin-screen-orientation": {},
      "cordova-plugin-music-controls": {},
      "cordova-plugin-x-toast": {},
      "cordova-plugin-secure-storage": {},
      "cordova-plugin-device": {},
      "cordova-plugin-market": {},
      "cordova-plugin-app-version": {},
      "cordova-plugin-filechooser": {},
      "cordova-plugin-file": {},
      "cordova-plugin-filepath": {},
      "cordova-plugin-android-permissions": {}
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...