在 TypeScript 中扩展另一种类型的任何类型的参数?

Posted

技术标签:

【中文标题】在 TypeScript 中扩展另一种类型的任何类型的参数?【英文标题】:Parameter of any type that extends another type in TypeScript? 【发布时间】:2019-10-25 19:57:53 【问题描述】:

我正在使用 TypeScript 创建一个 html5 游戏,并且我想自动渲染 GameObject 的所有子项。但是有许多不同的类可以扩展 GameObject 类。我理想中想要的是如下所示,其中数组中对象的类型可以是扩展 GameObject 类的任何类型。另外,我想避免类型转换和泛型,以及将所有可用类型指定为联合类型。

protected children: Array<any extends GameObject> = [];

这是否可以通过某种方式实现,或者我应该尝试使用其他方式吗?

【问题讨论】:

【参考方案1】:

以下内容:

protected children: Array<GameObject> = [];

会自动接受任何扩展 GameObject ?

更多

See type compatibility

附加提示

传统上,TypeScript 人写 GameObject[] 而不是 Array&lt;GameObject&gt; ❤️

【讨论】:

TSLint 抱怨第一个,但第二个工作正常。谢谢!

以上是关于在 TypeScript 中扩展另一种类型的任何类型的参数?的主要内容,如果未能解决你的问题,请参考以下文章

在 Typescript/React 中使用一种或另一种接口类型

TypeScript:无法检索另一种类型的属性类型

TypeScript:继承类中静态方法的自引用返回类型

为啥我不能在 Typescript 中扩展“任何”?

如何将一种泛型类型的结构复制到 TypeScript 中的另一种泛型?

TypeScript:相当于 C# 的用于扩展类的通用类型约束?