网站搜索

在 Typescript 中,类型循环错误似乎是任意的


这个递归类型定义被 Typescript 编译器接受。

type Recursive<T> = T & { prop: Recursive<T> };

我可以定义任意数量的属性,它会编译,但如果我需要所有可能的字符串属性递归定义,它就不会编译。

type Recursive<T> = T & { [prop: string]: Recursive<T> };

为什么会发生这种情况?有可能重写第二个定义使其起作用吗?