【问题标题】:Import Angular JavaScript Modules into TypeScript将 Angular JavaScript 模块导入 TypeScript
【发布时间】:2015-09-30 13:43:11
【问题描述】:

我有一堆用 JavaScript 编写的 Angular 模块,想将它们导入 TypeScript。我尝试使用 import 和 require,但它没有找到我的 angular 模块,因为 import 仅检查 TypeScript 模块。

import myModule= require('myModule');

除了在 TypeScript 中转换我的 Js 之外,还有其他方法吗?

【问题讨论】:

  • var myModule= require('myModule');?

标签: javascript angularjs typescript


【解决方案1】:

您不能直接从 TypeScript 使用使用 angular.module('my', []) 定义的模块。这种符号仅用于在内部 angularJS 对象中注册模块。 从好的代码角度来看,您必须将您的 Angular 模块重新设计为 TypeScript/CommonJS/AMD 模块,并在您的 Angular 应用程序中重新使用它们。 但你可以走另一条路:

  1. 创建一个隐藏的div 元素。
  2. 在此 div 元素上引导您要导入的角度模块。这是link to angularJS documentation,可能会有所帮助。
  3. 使用下一个 sn-p 来使用在您的模块中注册的服务或其他内容:angular.element(document.getElementById('myhiddendiv')).injector.invoke(function(YourService: any) { YouService.doDirtyJob(); })

但我建议使用第一个选项。

【讨论】:

    【解决方案2】:

    导入模块也会查找 JS 文件...

    import $Module = require("myModule");
    

    这应该可以正常工作!在 TypeScript 中,您使用 '$' 调用模块并像这样使用它:

    $Module.createdWhateverFunctionYouMade(parameters);
    

    在这种情况下,“myModule”是 Javascript 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      相关资源
      最近更新 更多