gpt4 book ai didi

javascript - 闭包编译器中的递归类型

转载 作者:行者123 更新时间:2023-11-28 09:28:21 25 4
gpt4 key购买 nike

有没有办法定义 recursive type在闭包编译器的类型语法中?换句话说,我可以定义一个将自身包含在其定义中的类型吗?

/**
* A node on the tree.
* @type {{left: (Tree|null)}}
*/
var Tree = {
left: null
};

(旁注:是的,树的这个定义是错误的)

尽管上面的代码通过简单的优化进行了编译,但它会失败并引发以下错误:

JSC_TYPE_PARSE_ERROR: Bad type annotation. Unknown type Tree at line 3 character 17 * @type {{left: (Tree|null)}}

最佳答案

只是一个猜测,但你可以将类型放在左侧部分吗?

/**
* Not sure what goes here
*/
var Tree = {
/**
* @type {Tree}
*/
left: null
};

您也不需要类型的构造函数

/**
* @constructor
*/
var Tree = function(){

this.left = new Tree()
};

/**
* @type {Tree}
*/
Tree.prototype.left = null;

正如您所知,如果您使用实例化类型,您现在将获得无限递归

var test = new Tree();

关于javascript - 闭包编译器中的递归类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14004943/

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