我正在尝试在函数内部扩展类,同时保留原始类的类型。
该函数接受一个Model
类,并使用一些额外的信息对其进行扩展,然后返回新扩展的类。
我想避免在这里使用any
,因为我不想丢失Model
给您的输入内容。
export default function attach(ModelClass: typeof Model, options: AttachOptions) {
class AttachedClass extends ModelClass {
// override some static methods here based on `options`
}
return AttachedClass;
}
我还是得到这个错误
Return type of exported function has or is using private name 'AttachedClass'. on line 1
答案 0 :(得分:0)
我认为错误是由于声明文件生成引起的?
您需要注释attach
的返回类型。您可以使用添加到类的静态端的方法声明一个接口AttachMethods
,然后使返回类型为typeof Model & AttachMethods
。使返回类型依赖于选项比较棘手,但有可能实现;如果您提供更多信息,我可以为您提供帮助。