【发布时间】:2023-02-20 20:53:13
【问题描述】:
我在我的代码中发现了这个错误:类型“HardToDebugUser”上不存在属性“调试”。. Typescript 还没有推断出 mixin 类。正确的?给我解释一下。非常感谢。
type ClassConstructor<T> = new(...args: any[]) => T
function withEzDebug<C extends ClassConstructor<{
getDebugValue(): object
}>>(Class: C) : C{
type Hi = typeof Class;
return class extends Class {
constructor(...args: any[]) {
super(...args)
}
debug() {
let Name = Class.constructor.name
let value = this.getDebugValue()
return Name + '(' + JSON.stringify(value) + ')'
}
}
}
class HardToDebugUser {
constructor(private name: string, private grade: number) {
this.name = name;
this.grade = grade;
}
getDebugValue() {
return {
name: this.name,
grade: this.grade
}
}
}
let User = withEzDebug(HardToDebugUser);
let userWithDebug = new User("hi", 1);
userWithDebug.debug();
如何在 Typescript 中推断 mixin 类。
【问题讨论】:
标签: typescript