vscode不会跳转到定义

时间:2018-03-11 14:21:02

标签: javascript node.js websocket visual-studio-code

我有一个使用ws的节点项目。 VSCode知道websocket事件和函数,但是如果我在原型中添加一些东西,那么它在建议中被识别但我不能跳到定义。它说: 没有找到'setDefaults'的定义 。有什么我需要在VScode中配置工作或我使用它错了吗?

enter image description here

易于复制的来源:

const WebSocket = require('ws');

WebSocket.prototype.setDefaults = function()
{
    console.log("defaults")
}


ws = new WebSocket();

ws.setDefaults()

我也试过查找所有引用,但它没有找到方法的用法。

1 个答案:

答案 0 :(得分:2)

您在动态属性

周围遇到this known limitation

一种解决方法:使用jsdocs声明包含扩展方法的新类型:

const WebSocket = require('ws')

/**
 * @typedef {{ setDefaults: () => void }} WebSocketExtensions
 * @typedef {WebSocket & WebSocketExtensions} ExtendedWebsocket
 * 
 * @type {ExtendedWebsocket}
 */
const ws = new WebSocket();

ws.setDefaults()