作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 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/
我是一名优秀的程序员,十分优秀!