Как правильно объединить интерфейсы из NPM модулей в TypeScript? - PullRequest
0 голосов
/ 20 февраля 2020

Пакет @types/yandex-maps содержит namespace ymaps.

Он имеет интерфейс IEventManager.

Я хочу добавить новый метод в этот интерфейс IEventManager.

Я пытаюсь сделать это в моем файле .d.ts:

import {IEvent} from '@types/yandex-maps';

declare module '@types/yandex-maps' {
    declare namespace ymaps {
        interface IEventManager {
            once(types: string[][] | string[] | string, callback: (event: object | IEvent) => void, context?: object, priority?: number): this;
        }
    }
}

Но это не работает! Как правильно добавить метод, который мне нужен?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

import {IEvent} from '@types/yandex-maps';

declare module '@types/yandex-maps' {
    declare namespace ymaps {
        interface IEventManager {
            once(types: string[][] | string[] | string, callback: (event: object | IEvent) => void, context?: object, priority?: number): this;
        }
    }
    export = ymaps;
    export as namespace ymaps;
}

0 голосов
/ 20 февраля 2020

Поместите этот d.ts файл в папку types и добавьте его в include.

// tsconfig.json
{
  ...
  "include": ["types/*.d.ts"]
}
...