【发布时间】:2021-03-15 23:45:44
【问题描述】:
我在编写复杂的类层次结构时遇到了一个令人费解的问题,每个类都从单独的类似 ES6 模块的文件中导出,并涉及到 mixins。
这是重现我的问题的简化示例:
文件“mixinA.ts”:
type Constructor = new (...args: any[]) => {};
export default function addMixinA<TBase extends Constructor>(Base: TBase) {
return class MixedInA extends Base {
public prop1 = 1
}
}
文件“classB.ts”:
import addMixinA from "./mixinA"
class ClassB {
public prop2 = 2
}
let ClassB_WithMixin = addMixinA(ClassB)
export default ClassB_WithMixin
文件“classC.ts”:
import classB from "./classB"
class ClassC {
// 'classB' refers to a value, but is being used as a type here. Did you mean 'typeof classB'? ts(2749)
public classB_instance: classB
}
正如您在我在错误行上方添加的评论中看到的那样,当使用从 classA.ts 导出时,文件 classC.ts 中会产生错误。
我做错了吗?你能发现我的错误吗?
【问题讨论】:
标签: typescript webpack mixins es6-modules