typescript - 如何从类本身访问类实例成员和方法
问题描述
我正在尝试编写一个函数,该函数将从一个类创建一个实例并对它的一些成员执行一些操作
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>)
这样,打字稿可以推断出baseClass
创建了T
when 构造的实例new
。
推荐阅读
- ios - Mapbox(iOS)用户注释覆盖/防止来自其他注释的触摸事件 - 使用用户注释命中测试
- python - 无法纠正错误,在 django 中没有这样的列
- jestjs - Jest、NestJS、TypeORM 端到端测试
- html - 如何修复css中的媒体查询?
- node.js - 微软 bot 框架 webchat 直连的秘密——NODE JS
- python - 正则表达式搜索一个单词并提取直到一个字符
- vb.net - 如何将特定文件的资源管理器窗口设置为 TopMost 窗体的子窗口?
- php - 在 PHP 中使用 $_GET 函数作为安全措施
- prolog - Prolog 程序根据以下事实找到犯罪的罪魁祸首
- pdf - 使用 adbe.pkcs7.detached 创建签名的 PDF