gpt4 book ai didi

javascript - 巴别尔.获取节点的第一个子节点。遵循访客模式

转载 作者:行者123 更新时间:2023-12-02 22:19:36 26 4
gpt4 key购买 nike

我需要获取“Program”节点的第一个子节点。我遵循访客模式。

    let out2 = babel.transform(tc1, { plugins: [
{
visitor: {
Program(path) {
console.log(path);
// path.insertBefore(decorators[d]);

}
}
}]});

请注意,decorators[d] 包含一个节点。我尝试获取第一个 child 的原因是因为 insertBefore 行似乎不起作用。它会抛出此错误。

TypeError: unknown: Cannot read property 'isExpressionStatement' of null

所以我想尝试在节点的子节点上执行该行。

<小时/>

我尝试过的事情:

path.children[0];

path.node.right;

path.traverse({
Program(p2) {

}
})

最佳答案

你可以做到

path.get("body.0");

但我用得最多的是这个:

path.traverse(
{
TypeOfNode(path){ }
})
<小时/>

我也尝试过插入它并且它有效:

path.node.body

这是一个节点数组。例如,如果您想在数组之前插入一个节点(使用 javascript unshift 函数),您可以这样做:

path.node.body.unshift(node);

关于javascript - 巴别尔.获取节点的第一个子节点。遵循访客模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59273255/

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