• Как использовать Yandex map API в typescript?

    Вам нужно описать структуру, типы и свойства используемых вами сигнатур в так называемом заголовочном или декларативном файле с расширением d.ts. Мне кажется, что готового пакета для установки через typings нет, но для вашего случая минимальный файл будет выглядеть примерно таким образом:

    ymaps.d.ts
    declare namespace ymaps {
      export function ready(): Promise;
    
      class Promise {
        then(onFulfilled?: Function, onRejected?: Function, onProgress?: Function, ctx?: any): Promise;
      }
    
      export class Map {
        constructor(element: string | any, state: MapState);
      }
    
      export class MapState {
        center: number[];
        controls: string[];
        zoom: number;
      }
    }

    И тогда ваш файл, где используете код с инициализацией карты будет выглядеть так:
    /// <reference path="ymaps.d.ts" />
    ...
    ymaps.ready().then(() => {
      let myMap = new ymaps.Map("main_map", {
        center: [50.450100, 30.523400],
        zoom: 12,
        controls: ['smallMapDefaultSet']
      });
    });


    В первой строке ссылаемся на наш файл с объявлениями. Typescript должен это скушать.
    Замечу, что в ссылке, указанной предыдущим оратором, есть более развернутые декларативные файлы.

    Есть еще один легкий обход всех этих объявлений.

    declare var ymaps: any;
    Ответ написан
    1 комментарий