Слияние объявления Typescript - дубликат идентификатора - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь выяснить, как расширить @types/cesium, но он либо жалуется, что у меня есть дублированное определение типа в случае (а), либо не может найти другие определения типа Цезия в случае (б).

Обратите внимание, что index.d.ts - это место, где существует исходный тип Rectangle, который является неполным, и я хочу расширить.

Case (а)

Ошибка: повторяющийся идентификатор «Прямоугольник». ts (2300)
index.d.ts (1322, 11) : здесь также был объявлен 'Rectangle'. *

export as namespace Cesium;

declare namespace Cesium {

  class Rectangle {
    static fromCartesianArray(cartesians: Array<Cesium.Cartesian2>, ellipsoid: Cesium.Ellipsoid, result?: Cesium.Rectangle): Cesium.Rectangle;
  }
}

Case (b)

Ошибка: Пространство имен '... Caesium' не имеет экспортированного члена 'Cartesian2'. ts (2694)

export namespace Cesium {    
  class Rectangle {
    static fromCartesianArray(cartesians: Array<Cesium.Cartesian2>, ellipsoid: Cesium.Ellipsoid, result?: Cesium.Rectangle): Cesium.Rectangle;
  }
}

1 Ответ

0 голосов
/ 31 октября 2019

Слияние не работает между любыми двумя элементами this описывает, что можно объединить с чем.

Если вы хотите объединить класс, чтобы добавить больше статических методов, которые вам нужно использоватьобъединение пространства имен класса:

namespace Cesium {
        export namespace Rectangle {
            function fromCartesianArray(cartesians: Array<Cesium.Cartesian2>, ellipsoid: Cesium.Ellipsoid, result?: Cesium.Rectangle): Cesium.Rectangle;
        }
}

...