我有一个数组,其元素要么是数组本身(递归),要么是字符串。 我试图为此编写类型定义,但编译器抱怨循环引用
我的问题:如何在没有循环引用错误的情况下编写这样的类型别名:
type Foo = Array<Foo | string>
问题描述如下:Type alias circularly references itself 但这并不能帮助我找到解决问题的方法
答案 0 :(得分:2)
TypeScript中的类型别名不能是递归的(由于类型别名的解析方式-不推迟其解析),除非递归发生在官方文档的the examples中指定的属性级别。 / p>
如this github issue中所述,解决方法是改用接口,因为接口可以具有您要查找的递归定义:
interface Foo extends Array<Foo | string> { }