Language-tools: VS Code 在类型注释上显示错误

创建于 2020-05-20  ·  5评论  ·  资料来源: sveltejs/language-tools

我安装了 Svelte Beta 扩展并重新启动了语言服务器。 我的svelte.config.js是:

const sveltePreprocess = require('svelte-preprocess');

module.exports = {
    preprocess: sveltePreprocess(),
};

但是,扩展似乎并没有帮助 VS Code 理解我的代码是 Typescript,因为它在类型注释上给出了错误:

类型注释只能在 TypeScript 文件中使用。 javascript

Screen Shot 2020-05-19 at 8 24 24 PM

同样有趣的是,如果我将lang="typescript"更改type="text/typescript" ,语法颜色会完全消失,错误也会消失:

Screen Shot 2020-05-19 at 8 26 22 PM

系统(请填写以下信息):

  • 操作系统:macOS Catalina 10.15.4
  • IDE:VS 代码
  • 插件:Svelte Beta

最有用的评论

啊,所以问题是因为我在我的 VS Code“用户”设置中有这个:

  "files.associations": {
    "*.svelte": "html"
  },

现在我已经删除了它,一切似乎都正常。

所有5条评论

您可以在此处发布整个文件的代码或示例存储库吗? 我无法重现它。 不需要包含所有脚本但需要其他顶级标签

这是一个最小的复制:

<script lang="typescript">
    let countExcludingUser: number = 0;
</script>

<p>Hi</p>

Screen Shot 2020-05-19 at 8 53 22 PM

我禁用了除 Svelte Beta 之外的所有扩展并重新启动了 VS Code,但没有成功。

我只成功复制了一次,之后就没有运气了。 你能再试一次它最新版本 99.0.22 吗? 这个版本有一些关于预处理的更新。 如果它仍然存在,您可以制作一个示例回购吗?

从您的描述来看,似乎SveltePlugin.ts确实知道它应该使用 Typescript 进行预处理,因为没有像“意外令牌”这样的 Svelte 语法错误。 另一方面, TypescriptPlugin.ts确实 - 出于某种原因 - 无法识别您使用的是 Typescript,而是认为它是 Javascript。 真的很奇怪......一个示例回购肯定会有所帮助。

啊,所以问题是因为我在我的 VS Code“用户”设置中有这个:

  "files.associations": {
    "*.svelte": "html"
  },

现在我已经删除了它,一切似乎都正常。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

matthewmueller picture matthewmueller  ·  5评论

scippio picture scippio  ·  3评论

shirakaba picture shirakaba  ·  4评论

JAD3N picture JAD3N  ·  5评论

Kingwl picture Kingwl  ·  6评论