Типизация свойства интерфейса в библиотеке

Всем привет. Мы используем библиотеку arcgis для создания карты. У элементов карты - graphic есть аттрибуты - attributes с типом any, я хочу глобально их типизировать. Примерный смысл того, как это сделать я понимаю, но пока оно не заработало. Подскажите, пожалуйста, как это реализовать

// node_modules/@types/arcgis-js-api/index.d.ts
// интерфейс, свойство которого хочу "дотипизировать"

declare namespace __esri {
  // ...какие-то классы и интерфейсы

  interface Graphic extends Accessor, JSONSupport {
    aggregateGeometries: any;
    attributes: any; // нужное мне свойство
    geometry: Geometry;
    readonly isAggregate: boolean;
    layer: Layer;
    popupTemplate: PopupTemplate;
    symbol: Symbol;
    visible: boolean;
    clone(): this;
    getAttribute(name: string): any;
    getObjectId(): number;
    setAttribute(name: string, newValue: any): void;
  }

  // ...какие-то классы и интерфейсы
}


// src/declare.d.ts
// мои попытки типизировать

export const enum MapElementTypeId {
  CONSTRUCTION_SITE = "constructionSite",
  JOB = "job",
  AREA = "area",
}

interface ConstructionSiteAttributes {
  id: MapElementTypeId.CONSTRUCTION_SITE;
  title: string;
  description: string;
}

interface AreaAttributes {
  id: MapElementTypeId.AREA;
}

interface JobAttributes {
  id: MapElementTypeId.JOB;
  areaId?: string;
}

type Attributes = ConstructionSiteAttributes | AreaAttributes | JobAttributes | null;

declare namespace __esri {
  export interface Graphic {
    attributes: Attributes;
  }
}

Ответы (0 шт):