如何在TypeScript中重写父类中重载的方法?

如何在TypeScript中重写父类中重载的方法?,typescript,Typescript,我正在尝试编写一个类,该类扩展了Logger 以下是原始类记录器的声明: 声明类记录器{ trace():布尔值 跟踪(错误:错误,…参数:任意[]):无效; 跟踪(对象:对象,…参数:任意[]):无效; 跟踪(格式:any,…参数:any[]):无效; } 下面是我在覆盖记录器#跟踪时的一些失败尝试: class傻瓜记录器扩展记录器{ 跟踪(错误:错误,…参数:任意[]):无效{ //类型“傻瓜”中的属性“trace”不可分配给基类型“Logger”中的同一属性。 //Type'(error

我正在尝试编写一个类,该类扩展了
Logger

以下是原始类
记录器的声明:

声明类记录器{
trace():布尔值
跟踪(错误:错误,…参数:任意[]):无效;
跟踪(对象:对象,…参数:任意[]):无效;
跟踪(格式:any,…参数:any[]):无效;
}
下面是我在覆盖
记录器#跟踪
时的一些失败尝试:

class傻瓜记录器扩展记录器{
跟踪(错误:错误,…参数:任意[]):无效{
//类型“傻瓜”中的属性“trace”不可分配给基类型“Logger”中的同一属性。
//Type'(error:error,…params:any[])=>void'不能分配给类型“{():boolean;(error:error,…params:any[]):void;(obj:Object,…params:any[]):void;(格式:any,…params:any[]):void;}”。(2416)
}
}
类whoologger1扩展了记录器{
跟踪(对象:对象,…参数:任意[]):无效{
//类型“傻瓜日志1”中的属性“trace”不可分配给基类型“Logger”中的同一属性。
//类型“(obj:Object,…params:any[])=>void”不可分配给类型“{():boolean;(错误:error,…params:any[]):void;(obj:Object,…params:any[]):void;(格式:any,…params:any[]):void;}”。(2416)}
}
}
类whoologger2扩展了记录器{
跟踪(格式:any,…参数:any[]):void{
//类型“傻瓜2”中的属性“trace”不可分配给基类型“Logger”中的同一属性。
//Type'(format:any,…params:any[])=>void'不能分配给类型“{():boolean;(error:error,…params:any[]):void;(obj:Object,…params:any[]):void;(format:any,…params:any[]):void;}”。(2416)
}
}
类whoologger3扩展了记录器{
跟踪(格式?:any,…参数:any[]):void | boolean{
//类型“傻瓜日志3”中的属性“trace”不可分配给基类型“Logger”中的同一属性。
//Type'(format?:any,…params:any[])=>boolean | void'不能分配给类型“{():boolean;(error:error,…params:any[]):void;(obj:Object,…params:any[]):void;(format:any,…params:any[]):void;}。
//类型“boolean | void”不可分配给类型“boolean”。
//类型“void”不可分配给类型“boolean”。(2416)
}
}

傻瓜跟踪
的正确方法是什么,以便正确匹配
Logger#跟踪

我注意到了一些问题,不确定这是否是问题的根源。在Logger类中,我认为应该在单词boolean
trace(…args:any[])后面加一个分号:boolean{return false;}
将匹配。或者你可以让你的子类使用一个重载的
trace()
方法和一堆调用签名,比如父类。有些东西引起了我的注意,我不确定这是否是问题的根源。在Logger类中,我认为应该在单词boolean
trace(…args:any[])后面加一个分号:boolean{return false;}
将匹配。或者你可以让你的子类使用一个重载的
trace()
方法和一堆调用签名,比如父类。