将es6代理作为属性 - >内部错误:非法访问

时间:2016-09-26 18:37:21

标签: node.js typescript ecmascript-6 visual-studio-code

如果我在node.js 6.6中,写一个类(例如,已从TypeScript转换而来),那么这样的类:

 class Table {
    constructor(args) {
         this._rows = new Proxy({ test: 42 }, {});
    }
 }

并像这样实例化:

var table = new Table();

当我想在Visual Studio Code 1.2.1中调试时,我想要观察var表,我总是有

  

内部错误:非法访问

写在那里,这意味着我无法观看桌子或其任何属性。

同样的事情在Chrome中完全正常。

那么,为什么会这样呢?我能做些什么呢?

谢谢!

1 个答案:

答案 0 :(得分:2)

首先来到这里的人。这确实是一个错误,但微软将其追溯到node.js本身内部的v8调试代码。解决方法是在启动配置文件中使用"type": "node2"。这告诉vscode使用新的调试协议。还建议使用节点7+。从vscode 1.10开始,对两者的支持都被认为是实验性的,并且只应在需要时使用。

从vscode 1.10开始," node2"代码正在与" node"合并。 "类型":"节点2"折旧有利于"协议"属性。如果设置为" auto"协议将根据运行时间确定自动切换。设置属性为"检查员"模拟" node2"强制使用新的调试协议。默认设置相当于使用"键入":" node"在vscode 1.8.x,1.9.x。