typescript - 打字稿 - 从孩子那里获得父母的正确方法
问题描述
所以,我的问题是:有没有办法从打字稿中的子实例获取父实例?
我知道您可以将孩子投射到其父母中,但问题是额外的孩子属性仍然存在于父母中,它们只是被隐藏了..
这是一个最小的可复制示例:
class Animal {
name = "Animal";
}
class Kid extends Dog {
name = "Dog";
power = 'Bark';
}
const a = new Animal();
const d = a as Dog;
console.log(d.power);
在这段代码中,linter 对 . 不满意d.power
,但它仍然可以编译并且工作得很好。
那么有没有更好的方法来做到这一点,而无需重新定义新的父母?
解决方案
该类Kid
只是继承Daddy
。当您说k as Daddy
(即使这什么也没做,因为k instanceof Daddy
已经是真的),您只是在说“k
知道它具有所有Daddy
属性和方法”。
但归根结底,k
是一个 Kid 实例。您的类命名表明您可能不完全了解继承,因为它们不是“父母”和“孩子”,更像是“动物”与“狗”或“人”与“爸爸”。一般来说,在编程世界之外,我们可以确定孩子不是爸爸。
推荐阅读
- python - 在 Entry Tkinter 中创建背景文本
- graphql - Gatsby Image TypeError:无法读取未定义的属性“footerHeart”
- flutter - 使用不包含 PhoneAuthenticationBloc 类型的 Bloc 的上下文调用 BlocProvider.of()。扑
- javascript - React Navigation 5 - 在导航到另一个选项卡中的另一个堆栈之前重置堆栈(类似于 popToTop())
- android - 如何在 Flutter 中访问一张地图中的所有索引
- python - 蓝牙交换的环境温度
- html - 列表元素长度将 Bootstrap 列颠倒到下一行
- php - “RuntimeException:尚未设置外观根”
- angular - Angular Firebase 检索数据并将数据用于另一个检索数据(实时)
- javascript - 使用 Moment js 迭代检查 Google Calendar API 中的可用性