Как определить это свойство в файле определения typescript
Я пытаюсь включить when.js (публичная библиотека обещаний на github, которую можно найти здесь) как свойство цезия (описанная общедоступная структура трехмерного моделирования здесь) в файле определения машинописного текста, который у меня есть для библиотеки Cesium. Это происходит потому, что я пытаюсь преобразовать некоторые файлы Javascript из проекта, использующего Cesium, в Typescript, и Cesium.js код, на который ссылаются, содержит приведенный ниже фрагмент кода. Я в недоумении, как это объявить when.js однако в файле d. ts. Это не похоже на класс, и я не думаю, что это интерфейс. Как я должен относиться к этому свойству - что это за объект?
(function(define) { 'use strict'; define('ThirdParty/when',[],function () { var reduceArray, slice, undef; // // Public API // when.defer = defer; // Create a deferred /* more when.otherProperties set here */ /** * Register an observer for a promise or immediate value. * * @param {*} promiseOrValue * @param {function?} [onFulfilled] * @param {function?} [onRejected] * @param {function?} [onProgress] * @returns {Promise} */ function when(promiseOrValue, onFulfilled, onRejected, onProgress) { // Get a trusted promise for the input promiseOrValue, and then // register promise handlers return resolve(promiseOrValue).then(onFulfilled, onRejected, onProgress); } /* more functions defined here, including a 'defer' function */
Что я уже пробовал:
В настоящее время я могу заставить код, ссылающийся на это, работать, если я объявлю класс под названием "when" в файле Cesium.d.ts, который у меня есть. Единственная проблема заключается в том, что в этом случае "when" является конструктором, но, как ясно определено во фрагменте кода, функция "when" возвращает обещание.