在Java中,可以使用类型"Class"给出class to a method作为参数.我在typescript文档中没有发现任何类似的东西——有可能将一个类交给一个方法吗?如果是,类型"any"是否包括这样的类类型?

背景:我对Webstorm有意见,告诉我我不能在第二节课上把一门课交给@ViewChild(...)人.然而,Typescript编译器并不抱怨.@ViewChild()的签名似乎是"Type<any> | Function | string",所以我想知道是否有包含类的签名.

推荐答案

在typescript中,你所要求的类似功能是type { new(): Class },例如:

class A {}

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

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

(code in playground)

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

Typescript相关问答推荐

Angular -使用Phone Directive将值粘贴到控件以格式化值时验证器不工作

创建一个通用上下文,允许正确推断其中的子项

typescribe不能使用值来索引对象类型,该对象类型满足具有该值的另一个类型'

泛型函数中输入参数类型的推断问题

对扩展某种类型的属性子集进行操作的函数

TypeScrip:逐个 case Select 退出noUncheck kedIndexedAccess

TypeScrip 5.3和5.4-对`Readonly<;[...number[],字符串]>;`的测试版处理:有什么变化?

通过字符串索引访问对象';S的值时出现文字脚本错误

等待用户在Angular 函数中输入

是否可以基于对象的S属性值[]约束对象的其他属性值用于类型化的对象数组?

如何使用模板继承从子组件填充基础组件的画布

如何将父属性类型判断传播到子属性

避免混淆两种不同的ID类型

界面中数组中的混合类型导致打字错误

如何键入派生类的实例方法,以便它调用另一个实例方法?

具有匹配功能的TS通用事件处理程序

在TypeScript中,如何通过一系列过滤器缩小类型?

我可以将一个类型数组映射到TypeScrip中的另一个类型数组吗?

如何让Record中的每个值都有独立的类型?

Next 13 + React 18 createContext 类型的构建问题