Typescript не распознает конструктор нетипизированного модуля узла - PullRequest
1 голос
/ 02 июля 2019

Я впервые пишу на 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, используя инструменты, но безуспешно, чтобы это заработало. Может кто-то пролить свет на это?

1 Ответ

0 голосов
/ 09 июля 2019

Оказывается, что модуль, который я использовал, устарел, и даже не имеет module.exports = ... в конце файла JS.после добавления мой проект теперь может распознавать библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...