给定一个接口:
interface IAnInterface {
}
如何引用和指向实现该接口的类类型?
给定类的含义:
class AClassThatImplmentsAnInterface implements IAnInterface {
}
如何引用作为类类型的类型?如果只是类,我们可以使用typeof
:
typeof AClassThatImplementsAnInterface
但是在接口级别,它指向实现接口的所有类:
typeof IAnInterface
给出错误:
'IAnInterface' only refers to a type, but is being used as a value here. (2693)
我想做的是:
type IClassTypeMapping = {
[names in SomeLiteralStringUnion]: Class<IAnInterface>
}
Class
不存在于TypeScript中。如何引用Class<IAnInterface>
的等价物?在TypeScript中是否可能?
2条答案
按热度按时间wsxa1bj11#
我假设您试图Map到类本身,而不是类的示例。所以基本上是可以构造的。我认为这种类型应该适合你:
我们声明
Class<IAnInterface>
可以用new
关键字和一些参数调用,并将返回IAnInterface
对象(类示例)。第二个参数
Args
允许您定义构造函数参数是什么。如果没有参数,它将是一个空数组。Playground Link
68bkxrlz2#
(仅限Angular)
Angular在类中有一个构建:Type。
您可以在relevant question中阅读更多内容。