0

我刚开始学习打字稿。我被要求用 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)

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

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

谢谢

4

1 回答 1

0

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

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

export class y {
}

女巫与角度模块兼容。

于 2021-04-01T23:13:25.113 回答