javascript - 带有引用泛型类(非实例)类型的字段的 Typescript 泛型接口
问题描述
假设我有一个 typescript classA
和一个B
classextends A
class A {
static a(): number { return 10; }
a_(): number { return 10; }
}
class B extends A {
static b(): number { return 20; }
b_(): number { return 20; }
}
我想定义一个通用的打字稿接口,如下所示:
interface ClassAndInstance<C extends A> {
c: ClassType<C>
i: C
}
(注意:ClassType
这里指的是泛型类型的类(不是实例)。)
现在,如果我有一个实例ClassAndInstance
ci: ClassAndInstance<B>;
我希望能够同时调用 B 的类和实例字段,如下所示:
ci.c.a(); // 10
ci.c.b(); // 20
ci.i.a_(); // 10
ci.i.b_(); // 20;
我将如何定义ClassType
以类型安全的方式实现这一目标?
我选择了一个接口来定义背后的语义ClassAndInstance
,但如果有任何其他方法可以实现这一点,那也可以。
解决方案
推荐阅读
- java - 通过代理连接到rabbitmq服务器
- json - 如何通过 ARM 模板在单个 azure 资源上添加多个 RBAC 角色
- libreoffice - 是否有为内联注释、参考和行数构建的文字处理软件?
- wordpress - 带有 meta_key 的 WordPress 查询无法按预期工作
- android - 如何从导航控制器清除回栈
- matlab - 使用鼠标右键选择后删除 UItable 中的行 - Matlab 2020a
- powershell - Powershell Stdout 未在 Jenkins 中返回
- python - 如何在 Python asyncio 中将新的协同程序添加到已经运行的循环中?
- apache-nifi - Nifi 将 Azure Blob account_name/account_key 存储在一个地方
- sql - 展平重复行 - Oracle SQL