在Java中,您可以使用"Class"类型将class to a method作为参数 . 我没有在打字稿文档中找到任何类似的东西 - 是否可以将类交给方法?如果是这样,"any"类型是否包含此类类型?
背景:我遇到了Webstorm的问题,告诉我我无法将一个类交给Angular 2中的 @ViewChild(...)
. 然而,Typescript编译器并没有抱怨 . @ViewChild()
的签名似乎是 "Type<any> | Function | string"
,所以我想知道是否有任何包括类 .
5 回答
您在打字稿中所要求的等价物是
{ new(): Class }
类型,例如:(code in playground)
是的,是的 .
any
包括每种类型 .以下是仅包含类的类型示例:
然后使用它:
你不应该在
Function
的类中传递错误,因为它应该可以正常工作:Angular内部declare
Type
as:使用TypeScript3,应该可以在没有函数重载的情况下添加types for arguments:
例:
这应该工作 - delcare a
type
Type有a working example
或者类似于界面
示例here
Java和JavaScript中的继承模型是不同的 . 在Java中,您在类的所有实例之间共享一个Class对象 . JavaScript使用原型继承,而不存在Class对象 .
TypeScript和ES6都只使用class关键字作为语法糖而不更改可执行代码的继承模型 .