angular - Typescript 中有 "Class"的类型吗? "any"是否包括它?

标签 angular typescript

在 Java 中,你可以给出一个 class to a method作为使用类型“Class”的参数。我没有在 typescript 文档中找到任何类似的东西——是否可以将一个类交给一个方法?如果是这样,“任何”类型是否包括此类类类型?

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

最佳答案

你在 typescript 中要求的等价物是类型 { 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

关于angular - Typescript 中有 "Class"的类型吗? "any"是否包括它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39392853/

相关文章:

javascript - 为什么 typescript 不知道我检查了对象类型?

javascript - "supplied parameters do not match call signature of target"的简单 typescript 示例

javascript - 类型 'Subscription' 不可分配给类型 'Observable<Exercise[]>'

javascript - 默认参数与问号

javascript - 如何以正确的方式对 MatDialog(Angular Material)进行单元测试?

javascript - 如何将数据从一个组件传递到另一个组件以进行编辑表单?

javascript - 为什么未定义从 index.tsx 文件导出? ( react + typescript )

typescript - "ion-slides "选项 "has been deprecated",现在呢?

angular - 什么是数据绑定(bind)属性?

javascript - 抛出新错误(`弃用通知 : CommonsChunkPlugin now only takes a single argument