1

我使用 import 语句在我的 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 将“breeze”识别为命名空间,将 EntityManager 识别为类。我相信它是直接从 TDF 获得的。

class EntityManager {...}

该类也未导出。我认为它必须导出:

export class EntityManager{...}

不必使用导入/导出语句似乎要简单得多,但我不明白这是如何实现的。

4

1 回答 1

2

我不明白它是如何工作的。微风有一个 .d.ts 文件,但我在项目中的任何地方都没有看到它被导入的任何地方

如果库污染(使用)全局命名空间,它将起作用。当前的微风定义:https ://github.com/borisyankov/DefinitelyTyped/blob/44cbde48eecd1918ed54b3be49a9752688b6c65a/breeze/breeze.d.ts在全球范围内有效。它是一个全局模块,因为import/export根级别没有(更多)。

运行时也可以(通过添加到window)。

于 2015-10-23T02:05:24.460 回答