我有這門課: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再次在內部工作的建議?
將上下文綁定到其他內容后,如何讓 VsCode 代碼建議起作用?
慕村9548890
2021-11-18 16:33:00