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

0

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

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{...}

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

Теги:
breeze
typescript1.6

1 ответ

1
Лучший ответ

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

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

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

  • 1
    Мне действительно нужно прочитать всю вашу книгу :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню