我需要知道在Typescript脚本中是否可以导入Java对象(特别是枚举类)。
我已经搜索过了,但没有找到任何相关信息。
ErrorCodeAuthority用于从我们的服务中抛出自定义的、标准化的错误,每个已知错误都有设置消息(一些参数化,一些不是)、HTTP状态码等,在一个地方定义。
在我们的JavaScript代码中,我们有:
var JavaErrorCodeAuthority = Java.type("com.domain.ErrorCodeAuthority");
在TypeScript中是否可以做到同样的事情?
我已经声明了以下内容:
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");
我正在尝试使用以下新类型:
export class HttpFailResult extends HttpResult {
constructor(public errorCode : Java.ErrorCodeAuthority, public userParams? : UserParam[]) {
super(errorCode.httpStatus.value(), errorCode.toString());
}
}
当我尝试使用grunt编译为js时,我遇到了以下错误:
error TS2339: Property 'httpStatus' does not exist on type 'ErrorCodeAuthority'.
(供参考,超级
HttpResult
是一个对象,包含一个数字 http code
和一个字符串 body
。在 Java 枚举中的 HttpStatus
属于类型 org.springframework.http.HttpStatus
)我尝试删除
export function type(arg: "com.domain.ErrorCodeAuthority"): ErrorCodeAuthority;
这一行,但这并没有改变异常。如果需要,我们将所有内容都运行在 nashorn 容器内。