【问题标题】:Extend react.component and '&' sign扩展 react.component 和 '&' 符号
【发布时间】:2019-09-12 12:42:09
【问题描述】:

什么是类定义中的“&”符号?

在我的课堂上,我发现我需要以下类定义:

class myList extends Component<RouteComponentProps<any> & IMyList> {

我发现许多其他示例使用 comma 而不是 &,但使用逗号时出现错误:

prop x 不存在

【问题讨论】:

  • 而不是使用intersection type 你应该让IMyList 扩展RouteComponentProps<any>
  • @Thomas 不一定,任何一种方式都适用于组件道具。 & 表示交叉点,即道具将是RouteComponentProps<any>IMyList。放置, 表示您正在传递另一个类型参数(用于状态),因此道具将为RouteComponentProps<any>,状态将为IMyList
  • @TitianCernicova-Dragomir 我知道这两种方法都行。在我看来,OP非常缺乏经验。尽管我相信他很快就会理解这些类型,但我认为对于一个没有经验的程序员来说,用这种结构制造一个大混乱并在所有地方重复自己要容易得多。这就是为什么我建议改用继承。
  • @Thomas 是的,从这个角度我同意,继承可能更容易掌握

标签: javascript reactjs typescript


【解决方案1】:

& 运算符称为Intersection Type

它可以让你

...获取两个对象并创建一个具有这两个对象特征的新对象。

将其视为“既是 typeA 又是 typeB 的类型”。 IE。一个新类型,其属性来自交集类型声明中的每个对象。

附:我强烈建议您阅读链接中的书。这对我很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多