第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 VS Code 調試 Node.js 中的私有類字段?

如何使用 VS Code 調試 Node.js 中的私有類字段?

小唯快跑啊 2023-11-02 16:53:33
如何在運行時檢查類實例私有字段的內(nèi)容,在 VS Code 中調試 Node 應用程序?這應該是一些基本的東西,但不知何故似乎不可能......VS Code 的 Javascript 調試器不顯示對象的私有字段我嘗試過util.inspect,但 Node 人員決定不讓它工作。如果不可能,有哪些解決方法?我在用著:節(jié)點15.3.0VS代碼1.51.1
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

更新:

在提出此問題時,VS Code 的內(nèi)置 JavaScript 調試器不支持私有類字段的調試。從版本 1.56.0(2021 年 4 月)開始,現(xiàn)在是這樣。


舊答案:

VS Code 的內(nèi)置 JavaScript 調試器 (?ms-vscode.js-debug?) 尚不支持私有類字段。( github上有一個功能請求)

然而,v8 確實有一個(目前處于實驗狀態(tài))讀取私有類字段的方法。我制作了一個概念驗證項目 (?leonardoraele/private-field-inspect?),它使用 Node 的檢查器 API在運行時以編程方式打開調試會話以讀取變量的內(nèi)容。(這不會中斷運行時執(zhí)行)

它有效,但有一些警告。

用法:

import inspect from '../path/to/private-field-inspect';


class Subject

{

? ? publicValue = 'not so secret';

? ? #secretValue = 'my secret';

}


const subject = new Subject();


inspect(subject)

? ? .then(console.debug);

輸出:


{ publicValue: 'not so secret', '#secretValue': 'my secret' }

上面的解決方法對我來說并不令人滿意,因此我認為最好盡可能避免使用私有類字段,直到調試器正確支持它們。相反,使用符號來隱藏私有變量。


例子:


// my-class.js (or .msj)

const PRIVATE = {

? ? SECRET_VAL = Symbol('#secretVal');

};


export default class Subject {

? ? // ms-vscode.js-debug can read it, but other modules can't

? ? [PRIVATE.SECRET_VAL]: 'my secret';


? ? doSomething()

? ? {

? ? ? ? const secret = this[PRIVATE.SECRET_VAL];

? ? ? ? // ...

? ? }

}


查看完整回答
反對 回復 2023-11-02
  • 1 回答
  • 0 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號