gpt4 book ai didi

typescript - 如何从类本身访问类实例成员和方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:37 27 4
gpt4 key购买 nike

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

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']);

最佳答案

是的,您可以使用这样的类型:

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

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

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

这样,typescript 可以推断 baseClass 在使用 new 构造时创建了 T 的实例。

TS Playground example here .

关于typescript - 如何从类本身访问类实例成员和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57144559/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com