描述错误
export let
未使用属性的语句会导致警告。 警告显示在我实际属性上方的行上。
再现
将脚本语言设置为 typescript( lang="ts"
或type="text/typescript"
)。
声明一些导出属性,不要在任何地方使用它。
预期行为
警告针对未使用的属性。
截图
如果该属性位于脚本的第一行:
系统(请填写以下信息):
尝试将您的 @tsconfig/svelte 更新为最新
我不使用那个。
暂时添加了,什么也没做。
哦,我以为你在使用官方模板。 该软件包是 svelte 的基本配置。 您可以更新tsconfig.json
的extends
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
。
感谢您的问题!
@brunnerh如果您从
tsconfig.json
删除"sourceMaps": true
和基本配置引用,而是在sveltePreprocess({sourceMap: true})
中执行svelte.config.js
,它是否会在正确的位置显示警告行呢?
不,还是关了。
所以它只有在你将"sourceMaps": true
到tsconfig.json
时才有效?
是的
关闭,因为这些是与svelte-preprocess
相关的问题。 “当我通过源映射选项告诉预处理时不应用源映射”-问题在最新版本中得到修复。 在https://github.com/sveltejs/svelte-preprocess/issues/300 中跟踪了“不支持tsconfig.json
extends
-feature”。