想把coffeescript 的代码改为typescript的,但是自己语法不熟,改了总出错,求高手帮忙,谢谢!

coffeescript的代码:
class DingTalkReturnError extends Error
constructor: (err_code, err_msg) ->

@name = 'DingTalkReturnError'
@message = err_msg
@code = err_code

toString: ->

"#{@name}: [#{@code}] #{@message}"

module.exports = {
DingTalkReturnError: DingTalkReturnError
}
下面是我自己改的typescript的代码,我想导出的代码能在外部文件import的时候还能new那个类,即new DingTalkReturnErrorClass.DingTalkReturnError(参数1,参数2),谢谢!
class DingTalkReturnErrorClass extends Error {

private static DingTalkReturnError: any
static get Instance() {
    return this.DingTalkReturnError || (this.DingTalkReturnError = new DingTalkReturnErrorClass())
}
name = "DingTalkReturnError"
message = ""
code = ""
constructor(err_code?: any, err_msg?: any) {
    super()
    this.message = err_msg
    this.code = err_code
}
toString() {
    return "#{" + this.name + "}: [#{" + this.code + "}] #{" + this.message + "}"
}

}

阅读 1.7k
2 个回答

是我import和export的时候有问题,现在改好了没报错,谢谢大家的帮助!

每个语句后面都要有分号。

private static DingTalkReturnError: any

改为

private static DingTalkReturnError:DingTalkReturnErrorClass=null;

太多错误。

class DingTalkReturnErrorClass extends Error {

private static _inst: DingTalkReturnErrorClass;

static inst(err_code?: any, err_msg?: any):DingTalkReturnErrorClass {
    return this._inst|| (this._inst= new DingTalkReturnErrorClass(err_code,err_msg));
}

name = "DingTalkReturnError";
message = "";
code = "";
constructor(err_code?: any, err_msg?: any) {
    super();
    this.message = err_msg;
    this.code = err_code;
}

toString() {
    return "#{" + this.name + "}: [#{" + this.code + "}] #{" + this.message + "}";
}

}

调用的时候这样:

let err=DingTalkReturnErrorClass.inst(参数1,参数2);

或者

throw new DingTalkReturnErrorClass(参数1,参数2);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进