Как использовать создание экземпляра класса без его импорта

Я импортирую большинство классов в свое приложение TypeScript с помощью оператора импорта:

import {Logger, getLogger} from "aurelia-logging";
import {HttpResponseMessage} from "aurelia-http-client";

class ErrorHandler {
    logger:Logger = getLogger("Error-Handler");
    handleError(message: any) : void {
        this.logger.error(message);
    }
    handleHttpError(response: HttpResponseMessage) {
        this.logger.error(response.content.error_description);
    }
}

Тем не менее, я нашел пример кода, который делает это:

entityManager = new breeze.EntityManager(Settings.serviceName);

Однако ветер никуда не завозится.

Я не понимаю, как это работает. Есть файл .d.ts для бриза, но я нигде не вижу, чтобы он где-то импортировался в проект. Visual Studio распознает «бриз» как пространство имен, а EntityManager — как класс. Я считаю, что он получает это непосредственно от TDF.

class EntityManager {...}

Также класс не экспортируется. Я думал, что это должно быть экспортировано:

export class EntityManager{...}

Кажется, намного проще не использовать операторы импорта/экспорта, но я не понимаю, как это достигается.


person Greg Gum    schedule 23.10.2015    source источник


Ответы (1)


Я не понимаю, как это работает. Есть файл .d.ts для бриза, но я нигде не вижу, чтобы он куда-то импортировался в проекте

Это будет работать, если библиотека загрязняет (использует) глобальное пространство имен. Текущее определение бриза: https://github.com/borisyankov/DefinitelyTyped/blob/44cbde48eecd1918ed54b3be49a9752688b6c65a/breeze/breeze.d.ts работает глобально. Это глобальный модуль, так как на корневом уровне нет import/export (подробнее).

Среда выполнения тоже (путем добавления к window).

person basarat    schedule 23.10.2015