我有一个数组,其元素本身是一个数组(递归)或字符串。我试图为此编写一个类型定义,但编译器抱怨循环引用
我的问题:如何在没有关于循环引用的错误的情况下编写类似这样的类型别名:
type Foo = Array<Foo | string>
问题在这里描述:Type alias circularly references itself但它并没有帮助我找到解决我的问题的方法
TypeScript中的类型别名不能递归(由于如何解析类型别名 - 它们的解析不延迟),除非递归发生在官方文档中the examples中给出的属性级别。
正如this github issue中所解释的那样,解决方法是使用接口,因为接口可以具有您寻求的递归定义:
interface Foo extends Array<Foo | string> { }