gpt4 book ai didi

typescript - 如何避免类型别名中的循环引用

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:32 24 4
gpt4 key购买 nike

我有一个数组,其元素要么是数组本身(递归),要么是字符串。我试图为此编写类型定义,但编译器提示循环引用

我的问题:如何编写这样的类型别名而不会出现关于循环引用的错误:

type Foo = Array<Foo | string>

问题描述在这里:Type alias circularly references itself但它并不能帮助我找到解决问题的方法

最佳答案

TypeScript 中的类型别名不能递归(由于类型别名的解析方式——它们的解析不会延迟),除非递归发生在 the examples 中给出的属性级别在官方文档中。

解决方法,如 this github issue 中所述, 是改用接口(interface),因为接口(interface)可以具有您寻求的递归定义:

interface Foo extends Array<Foo | string> { }

关于typescript - 如何避免类型别名中的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55656301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com