使用 JSweet 转译 Java 库并在 angular 中使用它

问题描述

我刚开始学习打字稿。我被要求使用 jsweet 转译一个 Java 库,以将其嵌入到一个 Angular 项目中。 java 库只包含纯逻辑,不依赖于其他库。转译很顺利,结果是一系列 .ts 文件,格式如下:

namespace com.test {
  export lib_class_name {
    ... transplied content ...
  } 
}

当我尝试从角度组件引用这些类时出现问题。示例:

import { Component,OnInit } from "@angular/core";

@Component({
  selector: "app-dashboard",templateUrl: "./dashboard.component.html",})

export class DashboardComponent implements OnInit {
  constructor() {
    let tmp = new com.test.lib_class_name()
  }

  ngOnInit() {}
}

代码编译正确,但我收到运行时错误

ERROR Error: Uncaught (in promise): ReferenceError: com is not defined
ReferenceError: com is not defined
  at new DashboardComponent (dashboard.component.ts:10)

基于我在互联网上找到的类似错误解决技巧,我尝试以多种方式引用该类,但结果始终相同。

为什么会发生这种情况,我该如何解决

谢谢

解决方法

我解决了:我需要在 JSweet 转换器选项中启用模块支持。 现在JSweet以如下形式生成类:

import {x} from '..\x'
...

export class y {
}

witch 与 angular 模块兼容。