javascript - 在函数参数中传递用户定义的类型
问题描述
我有一个type
这样的定义:
export type KlassConstructor = new (...args: any[]) => Klass;
还有一个像这样的另一个类 B 中的构造函数:
constructor(name: string, options?: any, construct?: KlassConstructor) {
//
if(construct)
{
(this.attr).state = new (construct)();
}
//
}
我需要初始化 B 传递进行construct
一些初始化的参数。我想知道如何通过args
导出类型中的定义来初始化类Klass
。
解决方案
B 类期望“construct”参数是 KlassConstructor 的一个实例。
所以在调用 B 的构造函数之前,你可以创建一个 KlassConstructor 的实例。然后将其放入 B 的构造函数方法中。
像这样:
KlassConstructor k = new KlassConstructor(1,2,3);
B b = new B('name', {}, k);
我相信您也可以随时随地进行操作,例如:
B b = new B('name', {}, new KlassConstructor(1,2,3));
另外,我不确定它是否适用,但如果一个类从另一个类继承,您可以使用 super() 函数:
推荐阅读
- django - 当时区信息存储在数据库中时,Django 按一天中的小时过滤
- laravel - 如何在本地和测试环境中禁用日志通道
- c# - 从文件保存和加载字典
- python - 如何在 Python 3.7 中自动生成字符串?
- graphql - GraphQL 中的冗余可以吗?
- git - 如何查看一个 git 分支在贡献分支的整个生命周期内对另一个分支的净贡献
- javascript - 点击事件在innerhtml字符串角度6中不起作用
- python - Pandas 通过索引获取多列
- jmeter - 我在预订 API 的响应中获得了 Billdesk URL,我必须导航到该 URL 并在浏览器上付款。我们可以用Jmeter来做吗?
- java - PostgreSQL 数据库在名称列中搜索城市名称并打印所选城市名称的所有记录