在Java中,我们可以执行以下操作:
Map<Class<?>, Integer> countsByClass;
...
countsByClass.put(String.class, 1);
如何在TypeScript(或类似的东西)中做同样的事情?
let countsByClass: Map<???, Number>;
...
countsByClass.put(???, 1);
答案 0 :(得分:3)
请执行以下操作:
class Foo {}
let countsByClass: Map<new (...args: any[]) => any, number> = new Map();
countsByClass.set(Foo, 5);
console.log(countsByClass.get(Foo));
还可以定义中间Class
类型:
type Class<T = any> = new (...args: any[]) => T;
,然后Map
声明变得更简洁:
let countsByClass: Map<Class, number> = new Map();
答案 1 :(得分:0)
我认为您的意思是为类提供通用类型。当然,如果需要,您可以提供多种类型。
示例:
class Map<T, U> { }
如果我错了,请纠正我。