ts用什么代替 type?

js ts 没有强类型语言里的type

想用一个类的type,作为map的key

有什么代替方案?

JS 的class 只是语法糖,实际上还是原型链那套。class 本质不是type,而是一个构造函数(Function)。

比如声明一个 class ABC { }; abc = new ABC();
你可以通过constructor属性 获取abc的构造函数:
abc.constructor === ABC;

所以把ABC(或者ABC.name)作为map的 key就可以了。

注意js会压缩混淆,变成a.b.c.d这种状态,利用constructor属性很容易掉坑里

楼下说的对,常规数据类,混淆后,变成a.b.c.d这种状态。 组件类,似乎不会

如果只是作为 map 的key 使用,无论怎么混淆,
abc.constructor 还是等于 ABC,只是名字变了。
混淆只是影响你 使用 字符串 的方式来获取 类 ABC。

这种情况应该通过配置来避免特定类的混淆,比如像java如果要使用反射获取类,这个类也是不能被混淆的。