Я впервые пишу на TypeScript и JavaScript. Сейчас я сталкиваюсь с проблемой, когда мне нужно работать с довольно старым Node Module . Я импортировал это так:
import * as D2L from 'valence/lib/valence'
Когда я пытаюсь его использовать:
let appContext = new D2L.ApplicationContext('asd', 'asd').createUrlForAuthentication('wlutest.brightspace.com', 443, 'localhost:8100/callback');
эта ошибка выскакивает:
ОШИБКА TypeError: _valenceES6__WEBPACK_IMPORTED_MODULE_8 __. ApplicationContext не является конструктором
Я попытался сгенерировать d.ts для этого модуля, но, похоже, единственный эффект - это успокоить мою IDE, но ошибка остается.
У меня нет опыта работы с JavaScript, но, начиная со строки 193 из valence.js
, мне кажется правильным конструктором:
/**
* Build a new ApplicationContext instance.
*
* An application context stores the state of the application (app ID, and app
* Key) and provides methods for authentication. Given the authentication
* information, it creates a {@link D2L.UserContext} with the appropriate
* arguments.
*
* @param {String} appId Application ID as provided by Desire2Learn's key tool.
* @param {String} appKey Application Key as provided by Desire2Learn's key tool.
*
* @constructor
* @this {D2L.ApplicationContext}
*/
D2L.ApplicationContext =
function (appId, appKey) {
// Previous version took an appUrl as a first argument but threw it
// away. This provides backwards compatibility for that contract.
if (arguments.length === 3) {
appId = arguments[1];
appKey = arguments[2];
}
this.appId = appId;
this.appKey = appKey;
};
Я также пытался преобразовать этот файл в другие версии js, используя инструменты, но безуспешно, чтобы это заработало. Может кто-то пролить свет на это?