Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 静态类对象属性在运行时未定义_Angular_Typescript_Webpack - Fatal编程技术网

Angular 静态类对象属性在运行时未定义

Angular 静态类对象属性在运行时未定义,angular,typescript,webpack,Angular,Typescript,Webpack,我有一个奇怪的问题 我有这门课 export class PageList { static readonly About: IPageInfo = Object.seal({ menuTitle: 'About', url: 'about', trainingType: undefined, trainingName: undefined }); static readonly PrivacyFull: IPageInfo = Object.se

我有一个奇怪的问题

我有这门课

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)
    }
}
this.navService.push
中,我将获得
PrivacyFull
静态成员,其中
menutile
未定义的

在Chrome开发工具中查看它时,会发现它是
未定义的
,但如果我看到该文件(DevTools喜欢),它就是我编写的文件

我做错什么了?我真的看不出来

或者Typescript/Webpack是否以错误的方式编译

编辑:当我看到生成的webpack模块时,它也是未定义的

根据需要进行编辑,这里是我的
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": {}
    }
  }
}

我记得看到过那种行为,但我无法重现。你使用什么版本的Typescript?我的
package.json
~3.1.6
,但我在
package lock.json
中看到一些角度依赖项使用
3.2.4
,因为我在过去看到过这一点,在这种情况下,我倾向于使用带有
readonly
成员属性的单例服务。@ConnorsFan我可以尝试一下,尽管我很确定我会在某些地方得到一些循环依赖,但我不明白为什么使用服务会导致循环依赖。看见