我一直在学习Udemy的JavaScript课程,所有的建议都以与讲师视频相同的方式弹出,因为他们在讲座中走过。
现在我们在类上,.includes
方法没有被建议,我不明白为什么会这样。我已经搜索了许多职位在这里从堆栈溢出以及姐妹网站。我的内置JavaScript语言扩展没有被禁用。我安装了ESLINT和JS es6 Snippets扩展。建议发生,.includes
方法将在我打开的另一个项目中建议。在之前的讲座中,在实践文件中,该方法也得到了建议。这让我觉得这不是一个工作空间问题或设置问题。
GIF在最后被稍微切断了,但是,当我第一次开始查看.includes
是否会自动建议完成时,它没有出现。所以我完成了它。我按下回车键,然后重新运行。看起来,一旦使用了.includes
方法,VSCode现在就建议将其用于自动完成。
我需要做些什么才能在脚本中使用.includes
方法之前建议它?
这些建议对我真的很有帮助,因为我还在学习。我可以很容易地查看建议,看到我可以使用“x,y,z”,然后使用Moz JS文档来学习/阅读如何使用它。
关于搜索这个问题时发现的其他可能的解决方案,我确实遵循了建议。重新加载工作区/窗口。禁用扩展,重新启用它们。完全关闭其他扩展以排除冲突。jsconfig.json
的不同建议。下面是我当前的jsconfig.json。
{
"compilerOptions": {
"target": "es6"
},
"exclude": ["node_modules"]
}
2条答案
按热度按时间kxxlusnw1#
由于JavaScript变量不是类型化的,因此编辑器的建议是基于编辑器在推断变量值时的最佳尝试。
有些时候,代码中没有足够的信息让编辑器猜测值类型,在这种情况下,它默认假设为
any
:由于
.includes
仅在值为an array或a string时才相关,因此如果编辑器无法推断变量包含这两种类型中的一种,则不会建议。您可以通过添加类型表示法注解(格式为
/** @type {string} */
)来帮助编辑器:hmtdttj42#
您可能需要在建议“.includes()”之前指定“name”的类型Intellesence会尝试避免建议的方法不适用于该类型。
编辑:是啊,看看JHR的回答,他们对此解释得更详细