angular - Statisk klasseobjektegenskap er udefinert i kjøretid
Jeg har et merkelig problem
Jeg har denne klassen
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
});
}
Jeg bruker det i en komponent på denne måten:
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)
}
}
I this.navService.push får jeg den statiske medlemmen PrivacyFull med menuTitle som undefined.
Å se på det i Chrome utviklerverktøy sier at det er undefined, men hvis jeg ser på filen (lenket av DevTools) er den som jeg skrev den.
Gjør jeg noe galt her? Jeg ser det virkelig ikke.
Eller kompilerer Typescript/Webpack noe på feil måte?
REDIGER: Når jeg ser den genererte webpack-modulen, er den også udefinert.
Rediger om nødvendig, her er mine package.json avhengigheter
{
"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": {}
}
}
}

