I am using this code to preload any new images the browser has to fetch so it gets presented immediately in one piece instead of part by part.
preloadCardImages(produceCards:Array<ProduceCardDTO[]>){
let imageDecodeObservables= new Array();
produceCards.forEach(produceCardList =>{
produceCardList.forEach(produceCard =>{
let image= new Image();
image.src = produceCard.previewImageUrl;
imageDecodeObservables.push(from(image.decode()).pipe(catchError(error => of('failed to load image')))); //from maakt van de promise een observable, catchError voorkomt dat bij het niet kunnen laden van 1 plaatje gelijk de hee forkJoin afgebroken wordt.
}
);
});
forkJoin(imageDecodeObservables).subscribe(response => this.loading = false)
}
Yet when i serve the webapplication with the ng serve
command I get this error.
error TS2339: Property 'decode' does not exist on type 'HTMLImageElement'.
This is just plain wrong because when i look in the property and method suggestions for the image
variable i can clearly see decode
being one of the possible selections.
Also, the image preloading works just fine, so i really don't know what this error is about. So does anyone know how i can get rid of this faulty error?
Thank you
EDIT: I use VScode as the IDE
EDIT 2: Heres the devDependencies of my package.json
"devDependencies": {
"@angular-devkit/build-angular": "^0.6.8",
"@angular/cli": "^6.2.8",
"@angular/compiler-cli": "^6.1.10",
"@angular/language-service": "^6.1.10",
"@types/jasmine": "^2.8.12",
"@types/jasminewd2": "^2.0.6",
"@types/node": "~10.1.2",
"codelyzer": "~4.3.0",
"jasmine-core": "~3.1.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^2.0.5",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^2.0.4",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.3.0",
"ts-node": "~6.0.3",
"tslint": "~5.10.0",
"typescript": "^2.9.2"
}
EDIT: Heres proof that the method decode
doe exist on Image()