ES6: свойство 'selected' не существует для типа 'Object' - PullRequest
0 голосов
/ 16 января 2019

Из «Предварительного выбора областей кодового ввода AMcharts4» я хочу преобразовать JS в ES6. Тем не менее, я получил ошибку

ошибка TS2339: свойство 'selected' не существует для типа 'Object'.

Код, который я хочу преобразовать, приведен ниже:

// Create map instance
let chart = am4core.create("chartdivmap", am4maps.MapChart);

// Set map definition
chart.geodata = am4geodata_worldHigh;

// Set projection
chart.projection = new am4maps.projections.Miller();

// Center on the groups by default
chart.homeZoomLevel = 1.5;
chart.homeGeoPoint = {
    longitude: 10,
    latitude: 52
};

// Polygon series
let polygonSeries = chart.series.push(new am4maps.MapPolygonSeries());
polygonSeries.useGeodata = true;


var polygonTemplate = polygonSeries.mapPolygons.template;
polygonTemplate.tooltipText = "{name}";
polygonTemplate.fill = chart.colors.getIndex(0);

// Hover state
var hs = polygonTemplate.states.create("hover");
polygonTemplate.fill = am4core.color("#CCCCCC");
hs.properties.fill = am4core.color("#010101");

polygonTemplate.adapter.add("fill", function(fill, target) {
    if (target.dataItem.dataContext && target.dataItem.dataContext.selected) {
        return am4core.color("#666666");
    }
    return fill;
});

Я попытался let k:any = target; и передал переменную как function(fill, target, k) и попытался поймать значение как: k.dataItem.dataContext.selected, что дало мне больше ошибок.

1 Ответ

0 голосов
/ 16 января 2019

Можете ли вы попробовать что-то вроде этого:

polygonTemplate.adapter.add("fill", function(fill, target) {
    const ctx = target.dataItem.dataContext as any;
    if (ctx && ctx.selected) {
        return am4core.color("#666666");
    }
    return fill;
});
...