Intellisense JavaScript 无法按照过去的经验预期工作

问题描述 投票:0回答:2

我一直在学习 Udemy JavaScript 课程,并且所有建议都以与讲师视频在讲课时相同的方式弹出。

现在我们正在上课,并且没有建议使用

.includes
方法,我不明白为什么会这样。我浏览了 Stack Overflow 以及姐妹网站上的许多帖子。我的内置 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"]
}
javascript visual-studio-code intellisense
2个回答
0
投票

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

any
:

由于

.includes
仅在值为 数组字符串 时才相关,因此如果编辑器无法推断变量来保存这两种类型之一,则不会建议这样做。

您可以通过添加类型注释注释(以

/** @type {string} */
的形式)来帮助编辑:


0
投票

您可能需要指定“名称”的类型,然后才会建议“.includes()” Intellesence 尝试避免建议的方法不适用于该类型。

编辑:是的,看看 JHR 的答案,他们对此进行了更详细的解释

© www.soinside.com 2019 - 2024. All rights reserved.