问题描述
我刚开始学习打字稿。我被要求使用 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 模块兼容。