gpt4 book ai didi

javascript - 类型错误 : Cannot delete property 'Symbol(@xml.js.parent)' of#

转载 作者:行者123 更新时间:2023-12-03 01:57:06 25 4
gpt4 key购买 nike

我有这个 Node 类:

export const symbols = {
parent: Symbol('@xml.js.parent'),
};

export class Node {

[key: string]: any;

constructor(parent: Node, name: string) {


Object.defineProperty(this, symbols.parent, {
value: parent,
writable: true,
enumerable: false
});

}

}

我创建了一个新 Node ,然后尝试删除其中一个符号键:

/Users/alexamil/WebstormProjects/oresoftware/xml.json/dist/index.js:141
delete self.currentNode[exports.symbols.parent];
^

TypeError: Cannot delete property 'Symbol(@xml.js.parent)' of #<Node>
at ReadStream.<anonymous> (/Users/alexamil/WebstormProjects/oresoftware/xml.json/dist/index.js:141:61)
at ReadStream.emit (events.js:159:13)
at addChunk (_stream_readable.js:265:12)
at readableAddChunk (_stream_readable.js:248:13)
at ReadStream.Readable.push (_stream_readable.js:209:10)
at onread (fs.js:2115:12)
at FSReqWrap.wrapper [as oncomplete] (fs.js:676:17)

被这条线绊倒:

 delete self.currentNode[exports.symbols.parent];

有人知道为什么我无法删除该属性吗?由于将符号属性的 writable 设置为 true 似乎它应该可以工作,但是我不知道。

最佳答案

看起来我需要将 configurable 属性设置为 true

    Object.defineProperty(this, symbols.parent, {
value: parent,
writable: true,
enumerable: false,
configurable: true
});

关于javascript - 类型错误 : Cannot delete property 'Symbol(@xml.js.parent)' of#<Node>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50186180/

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