【发布时间】:2019-03-19 13:47:57
【问题描述】:
我有一些表格类:
abstract class A {}
class AB extends A {}
class AC extends A {}
class AD extends A {}
现在我想在一个文件中导出类名的映射 -> 构造函数,比如:
export default {
AB,
AC,
AD
};
这个导出的类型应该是什么?
我试过了:
type Mappings = {
[typeName: string]: typeof A
};
但是当我尝试这样的事情时:
import mappings from '..';
let s: string;
const TypeName = mappings[s];
const pr = new TypeName(); // ERROR
我得到错误:Cannot create an instance of an abstract class 因为 A 是抽象的。
我实际上是在尝试找出如何将 typeof A 替换为 subtypeof A 之类的东西或任何可行的方法。
【问题讨论】:
标签: typescript inheritance types