如何解决“已声明但从未读取过它的值”的误报?

时间:2019-07-16 00:39:23

标签: typescript

我已导入所需的模块:

import ionRangeSlider from 'ion-rangeslider'

然后我用了它:

jQuery('#price_range').ionRangeSlider({
    ...
})

但是在导入行上有此错误:

  

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

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

2 个答案:

答案 0 :(得分:3)

如果无法删除import,则可以禁用警告。

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

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

打字稿

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

// @ts-ignore
import ionRangeSlider from 'ion-rangeslider

请注意,这将禁用导入行的所有警告。这需要打字稿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

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

// tslint:disable:no-unused-variable

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

// tslint:enable:no-unused-variable

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

答案 1 :(得分:0)

因此,您在上方看到的符号是名称,而在下方看到的符号是属性。就像我写

const x = { x: 'x' };

我已经定义了一个常量变量x(一个 name )绑定到具有可变属性x的对象,或者您可能更喜欢说x.x为了避免混淆,其初始值为字符串x,或者您可能更愿意说'x'来避免混淆。

名称正在命名一个完全未使用的变量。您的lint脚本将未使用的变量视为代码味道,并建议不要使用它们。您不需要将正在使用的库的结果绑定到任何种类的名称,因为它通过使jQuery对象(也是一个函数;所有函数都是对象)突变来完成其黑暗工作。 >

如果您不喜欢这些秘密发生的事情,则将它们称为“副作用”,而将其消除是“(纯)函数式编程”的主要目标。