亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

將上下文綁定到其他內容后,如何讓 VsCode 代碼建議起作用?

將上下文綁定到其他內容后,如何讓 VsCode 代碼建議起作用?

慕村9548890 2021-11-18 16:33:00
我有這門課:class Cat {  name = 'Mr. Kitten';  /**   * A list of names   */  namesList = ['Bob', 'Snow'];  changeName() {    this.name = this.getNameFromList();  }  getNameFromList() {    return this.namesList[0];  }}在這個例子中,VsCode 從getNameFromList()方法內部的“this”上下文中提出建議。如果我將鼠標懸停namesList在該方法內的變量上,則會顯示我對該變量的 JSDocs 注釋。顯示變量的類型。一切安好。但是如果我重構這段代碼在getNameFromList里面創建一個函數changeName,就像這樣:class Cat {  name = 'Mr. Kitten';  /**   * A list of names   */  namesList = ['Bob', 'Snow'];  changeName() {    this.name = getNameFromList.bind(this)();    function getNameFromList() {      return this.namesList[0];    }  }}現在 VsCode 不再為this.namesListinside建議任何內容getNameFromList,因為this現在指的是不同的上下文,而 VsCode 不可能知道我this每次調用該函數時都會進行綁定。由于我將始終使用 調用該函數.bind(this),因此我希望 VsCode 顯示來自該上下文的建議。有什么方法可以讓 VsCode 知道該this函數的內部將始終綁定到某個其他上下文,以便我可以獲得自動完成和getNameFromList再次在內部工作的建議?
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

嘗試使用 jsdocthis注釋來明確說明的類型this:


class Cat {

  name = 'Mr. Kitten';

  /**

   * A list of names

   */

  namesList = ['Bob', 'Snow'];


  changeName() {

    this.name = getNameFromList.bind(this)();


    /** @this {Cat} */

    function getNameFromList() {

      return this.namesList[0];

    }

  }

}


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號