首页 > 解决方案 > 如何从类本身访问类实例成员和方法

问题描述

我正在尝试编写一个函数,该函数将从一个类创建一个实例并对它的一些成员执行一些操作

function presetInstance<T>(baseClass: any, members: Array<keyof T>) {
  const instance: T = new baseClass();

  // ...
}

它有效,但它导致代码感觉应该改进:

const instance = presetInstance<BaseClass>(BaseClass, ['foo', 'bar']);

有没有办法只写这个?

const instance = presetInstance(BaseClass, ['foo', 'bar']);

标签: typescript

解决方案


是的,您可以使用如下类型:

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

现在,将函数签名更改为:

presetInstance<T>(baseClass: IConstructor<T>, members: Array<keyof T>)

这样,打字稿可以推断出baseClass创建了Twhen 构造的实例new

TS Playground 示例在这里


推荐阅读