【发布时间】:2018-02-23 06:10:53
【问题描述】:
我写了如下类型的树:
type ReactNode = ReactChild | Array<ReactNode>
但编辑告诉我
TS2456:类型别名“ReactNode”循环引用自身。
如何解决修复此错误?
【问题讨论】:
标签: typescript
我写了如下类型的树:
type ReactNode = ReactChild | Array<ReactNode>
但编辑告诉我
TS2456:类型别名“ReactNode”循环引用自身。
如何解决修复此错误?
【问题讨论】:
标签: typescript
类型别名中的递归存在问题,正如this issue 中简要说明的那样:
类型别名不像接口。接口是命名类型, 其中类型别名只是别名。他们在内部也是 区别对待,编译器会积极展平类型别名 他们的声明。
这里有更长的讨论:allow recursive generic type aliases。
在您的情况下,您可以执行以下操作:
interface ReactNodeArray extends Array<ReactNode> {}
type ReactNode = ReactChild | ReactNodeArray;
【讨论】: