Sto*_*wke 6 javascript java typescript nashorn
对于downvoters来说 - 这是一个合理的问题.在假设我混淆了我的语言之前,请花时间检查它,就像某种编程新手一样!
我需要知道是否可以在Typescript脚本中导入Java对象(特别是枚举类).
我用谷歌搜索但没有找到任何东西.
ErrorCodeAuthority用于从我们的服务中为每个已知错误抛出自定义的标准化错误,其中包含在一个地方定义的设置消息(某些参数化,某些参数化,某些不是),http状态代码等.
在我们的JavaScript代码中,我们有
var JavaErrorCodeAuthority = Java.type("com.domain.ErrorCodeAuthority");
Run Code Online (Sandbox Code Playgroud)
是不是可以在打字稿中做同样的事情?
根据以下答案进行编辑
我宣布了以下内容:
declare module Java {
export enum ErrorCodeAuthority {
ENTITY_NOT_FOUND,
HTTP_VERB_NOT_SUPPORTED,
BAD_REQUEST,
//...
}
export function type(arg: "com.domain.ErrorCodeAuthority"): ErrorCodeAuthority;
export function type(arg: string): any;
}
var JavaErrorCodeAuthority = Java.type("com.domain.ErrorCodeAuthority");
Run Code Online (Sandbox Code Playgroud)
我试图使用新类型如下:
export class HttpFailResult extends HttpResult {
constructor(public errorCode : Java.ErrorCodeAuthority, public userParams? : UserParam[]) {
super(errorCode.httpStatus.value(), errorCode.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用grunt编译为js时,我收到以下错误:
error TS2339: Property 'httpStatus' does not exist on type 'ErrorCodeAuthority'.
Run Code Online (Sandbox Code Playgroud)
(作为参考,super HttpResult是一个包含number http code and a字符串body. HttpStatus, in the Java enum, is of typeorg.springframework.http.HttpStatus` 的对象).
我尝试删除该export function type(arg: "com.domain.ErrorCodeAuthority"): ErrorCodeAuthority;行,但没有更改异常.
编辑2 如果这有所不同,我们将在nashorn容器中运行所有这些
在 Typescript 中可以做同样的事情吗?
是的。使用tyrian,你可以这样写
let JavaErrorCodeAuthority = com.domain.ErrorCodeAuthority
Run Code Online (Sandbox Code Playgroud)
并且每个级别的包都会自动完成。
| 归档时间: |
|
| 查看次数: |
2773 次 |
| 最近记录: |