如何修复“已声明但从未读取其值”误报?

Jam*_*win 4 typescript

我已经导入了所需的模块:

import ionRangeSlider from 'ion-rangeslider'
Run Code Online (Sandbox Code Playgroud)

然后我用了它:

jQuery('#price_range').ionRangeSlider({
    ...
})
Run Code Online (Sandbox Code Playgroud)

但是在导入行上有这个错误:

'ionRangeSlider' 已声明,但它的值永远不会被读取。 ts(6133)

为什么会出现这个错误?我刚刚使用了我导入的模块。

Jul*_*ian 8

如果您不能删除import,那么您可以禁用警告。

请注意,错误可能来自打字稿编译器或 TSLint(如果您使用的是 TSLint)。两者都有几乎相同的警告。

在这种情况下,由于错误号,我认为它来自打字稿编译器。(6133)

打字稿

如果这是打字稿错误,则在导入之前添加// @ts-ignore,例如

// @ts-ignore
import ionRangeSlider from 'ion-rangeslider
Run Code Online (Sandbox Code Playgroud)

请注意,这将禁用导入行的所有警告。这需要打字稿 2.6+

见https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-6.html

TSLint

如果您正在使用 TSLint,这可能会出现相同的错误,您可以按如下方式禁用它。

添加 tslint 注释以禁用警告。例如:

// tslint:disable-next-line:no-unused-variable
import ionRangeSlider from 'ion-rangeslider
Run Code Online (Sandbox Code Playgroud)

如果您需要多行,您可以删除“下一行”,例如

// tslint:disable:no-unused-variable
Run Code Online (Sandbox Code Playgroud)

然后建议稍后在文件中启用它:

// tslint:enable:no-unused-variable
Run Code Online (Sandbox Code Playgroud)

见https://palantir.github.io/tslint/usage/rule-flags/