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.

Relaterade artiklar