具有class Foo<A> {}
等通用的类是否可以访问A
原型或在A
上使用typeguard,或运行任何类型的逻辑单独在A
的类型上 - 没有向Foo
的构造函数提供类,接口或实例(即Foo
没有构造函数或构造函数不接受A
类型的参数?
有几个关于访问构造函数的答案,例如Generic Type Inference with Class Argument,但我只对基于类型运行不同逻辑感兴趣,而不是实例化它的新实例。
具体来说,我想知道A.prototype
是否定义了某种方法。
答案 0 :(得分:0)
如果您的目标是仅允许具有特定功能的A
类,您也可以使用带泛型的扩展机制,如下所示:
interface B {
myMandatoryFunction()
}
class Foo<A extends B> {
//...
}
如果你的Generic类中的一个动作基于A
在其原型上有一个函数或者没有函数,你将不得不实例化一个A对象并查看它的原型,因为Typescript类型只是在代码执行期间参与编译和检查对象的类型与使用instanceof
方法的js完全相同,因此不适用于类型