首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在继承下定义typescript中的泛型构造函数?

在 TypeScript 中,可以使用继承来定义泛型构造函数。以下是一种常见的方法:

代码语言:txt
复制
class MyGenericClass<T> {
  private _constructor: new () => T;

  constructor(constructor: new () => T) {
    this._constructor = constructor;
  }

  createInstance(): T {
    return new this._constructor();
  }
}

class MyClass {
  name: string;

  constructor() {
    this.name = 'Example';
  }
}

const myGenericObj = new MyGenericClass<MyClass>(MyClass);
const instance = myGenericObj.createInstance();
console.log(instance.name); // Output: Example

上述代码中,我们首先定义了一个泛型类 MyGenericClass<T>,其中 T 是用来表示类型参数的占位符。类中有一个私有成员变量 _constructor,它是一个函数类型,表示构造函数。在类的构造函数中,我们接受一个构造函数作为参数,并将其赋值给 _constructor

接下来,我们定义了一个普通的类 MyClass,它具有一个属性 name。然后,我们实例化了 MyGenericClass,并传入 MyClass 作为构造函数参数。最后,我们调用 createInstance 方法创建了一个 MyClass 的实例,并输出了实例的 name 属性。

这样,我们就实现了在 TypeScript 中通过继承来定义泛型构造函数的目的。

推荐的腾讯云相关产品:无特殊要求,可以适用于腾讯云的云服务器(https://cloud.tencent.com/product/cvm)来部署和运行 TypeScript 代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券