Typescript 中是否有“类”的类型? “任何”包括它吗?

新手上路,请多包涵

在 Java 中,您可以使用“Class”类型将类作为参数提供 给方法。我在打字稿文档中没有找到任何类似的东西 - 是否可以将一个类交给一个方法?如果是这样,“任何”类型是否包括这样的类类型?

背景:我在使用 Webstorm 时遇到问题,告诉我无法在 Angular 2 中将类移交给 @ViewChild(...) 。但是,Typescript 编译器没有抱怨。 @ViewChild() 的签名似乎是 "Type<any> | Function | string" ,所以我想知道是否有任何包含类。

原文由 Florian Gössele 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 407
2 个回答

您在打字稿中要求的等价物是类型 { new(): Class } ,例如:

 class A {}

function create(ctor: { new(): A }): A {
    return new ctor();
}

let a = create(A); // a is instanceof A

操场上的代码

上面的代码只允许构造函数没有参数的类。如果您想要任何课程,请使用 new (...args: any[]) => Class

原文由 Nitzan Tomer 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是仅包含类的类型的示例:

 declare type Class<T = any> = new (...args: any[]) => T;

原文由 arastu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进