【问题标题】:How to define a tree type in TypeScript?如何在 TypeScript 中定义树类型?
【发布时间】:2018-02-23 06:10:53
【问题描述】:

我写了如下类型的树:

type ReactNode = ReactChild | Array<ReactNode> 

但编辑告诉我

TS2456:类型别名“ReactNode”循环引用自身。

如何解决修复此错误?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    类型别名中的递归存在问题,正如this issue 中简要说明的那样:

    类型别名不像接口。接口是命名类型, 其中类型别名只是别名。他们在内部也是 区别对待,编译器会积极展平类型别名 他们的声明。

    这里有更长的讨论:allow recursive generic type aliases

    在您的情况下,您可以执行以下操作:

    interface ReactNodeArray extends Array<ReactNode> {}
    
    type ReactNode = ReactChild | ReactNodeArray;
    

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 2020-12-15
      • 2020-08-05
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多