Language-tools: 使用 TypeScript 预处理器时,未使用的导出属性警告在错误的行上。

创建于 2020-08-27  ·  18评论  ·  资料来源: sveltejs/language-tools

描述错误
export let未使用属性的语句会导致警告。 警告显示在我实际属性上方的行上。

再现

将脚本语言设置为 typescript( lang="ts"type="text/typescript" )。
声明一些导出属性,不要在任何地方使用它。

预期行为

警告针对未使用的属性。

截图

image

如果该属性位于脚本的第一行:

image

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

  • 操作系统:Windows 10,64 位
  • IDE:VSCode
  • 插件/包:适用于 VSCode 的 Svelte

所有18条评论

尝试将您的 @tsconfig/svelte 更新为最新

我不使用那个。
暂时添加了,什么也没做。

哦,我以为你在使用官方模板。 该软件包是 svelte 的基本配置。 您可以更新tsconfig.jsonextends tsconfig.json以匹配此值。
https://github.com/sveltejs/template/blob/8194bf8f6452f8117195bf304ac99b15d329fbb3/scripts/setupTypeScript.js#L87

重复 #333

@jasonlyu123正如我所说,我临时添加了基本配置,但没有任何改变。 我仍然在错误的行上得到错误。

那么你可以尝试运行tsc在你的工作区中编译一个 ts 文件,看看输出文件是否有 sourcemap 吗?

问题在于源映射。 我们使用 svelte 编译器来获取 svelte 诊断信息。 如果您有一个 svelte.config.js 并在其中指定您的预处理器,我们将使用它来进行预处理,除此之外,我们将使用官方的 svelte-preprocess。 如果预处理器不返回源映射,警告将处于错误的位置。

此外,我们不监视 tsconfig.json 中的更改,因此请确保在任何更改后重新启动语言服务器。

它并不总是生成源映射。 如果我在单个文件上调用tsc ,它显然不会加载 tsconfig; 如果我使用tsc -p .tsc --build tsconfig.json它将按预期输出源映射。

如果你有的话,我可以看看你的svelte.config.js吗,你用的是哪个预处理器?

我使用默认处理器,在自动模式下应该是svelte-preprocess 。 我做了一个最小的示例存储库,它在输入组件上有错误。

我尝试创建一个svelte.config.js ,在自动模式下显式设置预处理器,并不重要。 明确使用只有typescript一个随便的路径tsconfig.json没有做任何事情无论是。

嗯……这是出乎意料的,只有当我还在tsconfig.json中将sourcemap为 true 时它才会起作用

那么extends就不太适用了。 好吧,我不介意暂时明确设置。
谢谢

是的,我快速浏览了 svelte-preprocess 的源文件。 看起来它没有解析extends
感谢您的问题!

我在svelte-preprocess处打开了这个问题,因为根据文档,在自动预处理模式下,应该生成源映射。 更新:文档是错误的,因此您需要自己将其设置为true

@brunnerh如果您删除"sourceMaps": true ,并从基本配置参考tsconfig.json ,而是做sveltePreprocess({sourceMap: true})svelte.config.js ,它显示在正确的警告行呢?

@brunnerh如果您从tsconfig.json删除"sourceMaps": true和基本配置引用,而是在sveltePreprocess({sourceMap: true})中执行svelte.config.js ,它是否会在正确的位置显示警告行呢?

不,还是关了。

所以它只有在你将"sourceMaps": truetsconfig.json时才有效?

是的

关闭,因为这些是与svelte-preprocess相关的问题。 “当我通过源映射选项告诉预处理时不应用源映射”-问题在最新版本中得到修复。 在https://github.com/sveltejs/svelte-preprocess/issues/300 中跟踪了“不支持tsconfig.json extends -feature”。

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