Типизация свойства интерфейса в библиотеке
Всем привет. Мы используем библиотеку 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;
}
}