Typescript中类型的类型是什么

半径

这是一个有效的打字稿片段:

class A{
}

// what is the type of x ?  i.e. f( x: <TYPE HERE>)...
function f(x) {
    return new x();
}

const t = f(A);

很明显 x 的类型是构造函数的类型,但我不清楚如何在 Typescript 中指定它。

是否可以输入参数 x ?

如果是,是什么类型?

雷莫·詹森

您可以使用:

interface Newable<T> {
    new (): T;
}

如下:

class A {}

interface Newable<T> {
    new (): T;
}

function f(x: Newable<A>) {
    return new x();
}

const t = f(A);

如果要允许构造函数参数,则需要键入它们:

class A {
    constructor(someArg1: string, someArg2: number) {
        // ...
    }
}

interface Newable<T> {
    new (someArg1: string, someArg2: number): T;
}

function f(x: Newable<A>) {
    return new x("someVal", 5);
}

const t = f(A);

如果需要,您还可以做一些更通用的事情:

interface Newable<T> {
    new (...args: any[]): T;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在TypeScript中,图像的类型是什么?

TypeScript类型中bivarianceHack的目的是什么?

TypeScript中的“类型”保留字是什么?

Typescript中的枚举类型是什么?

TypeScript 中的类型级扩展是什么?

Typescript中<svg>元素的类型是什么

枚举的 TypeScript 类型是什么

类型语法 - Typescript 中这种语法的含义是什么

Typescript中组件的React实例的正确类型是什么

TypeScript中“设置”函数的正确类型是什么?

TypeScript中的双精度类型声明是什么意思?

在Typescript类型定义中,前缀“&”是什么意思?

在TypeScript类型定义中,“&”号是什么意思?

在 TypeScript 中 any[]=[] 数据类型是什么意思?

Typescript中knex的默认返回类型是什么?

Typescript 中 MouseEvent<HTMLDivElement> 的适当事件类型是什么?

Haskell中<-的类型是什么?

swift中的'()'是什么类型?

python中的“ if”是什么类型?

与TypeScript反应:render()是什么类型?

TypeScript-fe setInterval是什么类型

在Typescript中,“通用类型'Feature <T>'需要1个类型参数”是什么意思?

当TypeScript中可能有多个类型时,如何指示返回类型将是什么?

在Typescript中,什么是模块类型?

pi类型是什么类型?

Flow中星号(*)类型的用途是什么,与TypeScript中的星号等效吗?

typescript中类型声明中的额外管道是什么意思

Rust中单位类型的目的是什么?

FIX中的OptimizedImplicitBlockRepeating组件类型是什么?