javascript - Angular 2 - TypeError undefined är inte en funktion för Array includes
Mitt Angular 2-projekt skapades med angular-cli version 1.0.0-beta.30. Jag använder biblioteket ngx-charts version 4.1.2. Stapeldiagramkomponenten fungerar bra, men när jag lägger till ett linjediagram kastas ett TypeError-undantag när jag kör applikationen. Felet är funktionen "includes" i rad 240 i [line-chart.component.ts][1] källfilen när den körs i Chrome version 38. Linjediagrammet visas korrekt i Firefox
if (!values.includes(d.name)) {
values.push(d.name);
}
Hur gör jag så att array include-funktionen blir känd för min applikation?
I min tsconfig.json-fil har jag
"lib": ["es6", "dom"],
Min package.json-fil innehåller följande
{
"name": "dashboards",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"@angular/common": "^2.4.5",
"@angular/compiler": "^2.4.5",
"@angular/core": "^2.4.5",
"@angular/forms": "^2.4.5",
"@angular/http": "^2.4.5",
"@angular/platform-browser": "^2.4.5",
"@angular/platform-browser-dynamic": "^2.4.5",
"@angular/router": "^3.4.1",
"@swimlane/ngx-charts": "^4.1.2",
"core-js": "^2.4.1",
"d3": "^4.4.0",
"rxjs": "^5.0.3",
"ts-helpers": "^1.1.2",
"zone.js": "^0.7.6"
},
"devDependencies": {
"@angular/cli": "1.0.0-beta.30",
"@angular/compiler-cli": "^2.4.5",
"@types/d3": "^4.4.0",
"@types/jasmine": "2.5.38",
"@types/node": "^6.0.42",
"codelyzer": "~2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.7.0",
"karma": "1.3.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.1.0",
"karma-remap-istanbul": "^0.4.0",
"protractor": "~4.0.14",
"ts-node": "1.7.2",
"tslint": "^4.3.0",
"typescript": "~2.0.10"
}
}
Min polyfills.ts-fil innehåller
import 'core-js/es6/array';
Jag har tittat igenom ngx-charts-demot och andra exempel, men jag kan inte lista ut varför jag får felet.
Tack
Svar #1
Jag hittade problemet. Filen polyfills.ts innehöll
import 'core-js/es6/array';
Jag behövde lägga till
import 'core-js/es7/array';
till filen.
Jag tror att detta beror på versionen av Chrome som är installerad på min företagsdator. Det är version 38. Denna sida på developer.mozilla.org för Array.includes anger att stöd för Chrome finns i version 47.
