根据过去的经验,Intellisense JavaScript无法按预期工作

4c8rllxm  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(97)

我一直在学习Udemy的JavaScript课程,所有的建议都以与讲师视频相同的方式弹出,因为他们在讲座中走过。
现在我们在类上,.includes方法没有被建议,我不明白为什么会这样。我已经搜索了许多职位在这里从堆栈溢出以及姐妹网站。我的内置JavaScript语言扩展没有被禁用。我安装了ESLINT和JS es6 Snippets扩展。建议发生,.includes方法将在我打开的另一个项目中建议。在之前的讲座中,在实践文件中,该方法也得到了建议。这让我觉得这不是一个工作空间问题或设置问题。

GIF在最后被稍微切断了,但是,当我第一次开始查看.includes是否会自动建议完成时,它没有出现。所以我完成了它。我按下回车键,然后重新运行。看起来,一旦使用了.includes方法,VSCode现在就建议将其用于自动完成。

我需要做些什么才能在脚本中使用.includes方法之前建议它?

这些建议对我真的很有帮助,因为我还在学习。我可以很容易地查看建议,看到我可以使用“x,y,z”,然后使用Moz JS文档来学习/阅读如何使用它。
关于搜索这个问题时发现的其他可能的解决方案,我确实遵循了建议。重新加载工作区/窗口。禁用扩展,重新启用它们。完全关闭其他扩展以排除冲突。jsconfig.json的不同建议。下面是我当前的jsconfig.json。

  1. {
  2. "compilerOptions": {
  3. "target": "es6"
  4. },
  5. "exclude": ["node_modules"]
  6. }
kxxlusnw

kxxlusnw1#

由于JavaScript变量不是类型化的,因此编辑器的建议是基于编辑器在推断变量值时的最佳尝试。
有些时候,代码中没有足够的信息让编辑器猜测值类型,在这种情况下,它默认假设为any

由于.includes仅在值为an arraya string时才相关,因此如果编辑器无法推断变量包含这两种类型中的一种,则不会建议。
您可以通过添加类型表示法注解(格式为/** @type {string} */)来帮助编辑器:

hmtdttj4

hmtdttj42#

您可能需要在建议“.includes()”之前指定“name”的类型Intellesence会尝试避免建议的方法不适用于该类型。
编辑:是啊,看看JHR的回答,他们对此解释得更详细

相关问题