TypeScript 错误:声明了 foo 但它的值从未被读取。 TS6133

Posted

技术标签:

【中文标题】TypeScript 错误:声明了 foo 但它的值从未被读取。 TS6133【英文标题】:TypeScript error: foo is declared but its value is never read. TS6133 【发布时间】:2019-08-24 12:30:47 【问题描述】:

一些简单的事情会导致这种情况发生。

let _tick = 0;
this.app.ticker.add( () => 
   moveSprites(dots);
   _tick += .2;
   return;
);

Tslint 选项设置如下:

"rules": 
  "object-literal-sort-keys": false,
  "no-unused-variable": [true, "ignore-pattern": "^_"]

通过搜索,我认为该规则会解决并允许忽略它,但不是。

一个解决方案是这样写。它会通过,但它会抱怨勾号 += .2 被分配但从未使用过。另外,这会改变行为。

this.app.ticker.add( (tick = 0) => 
   moveSprites(dots);
   tick += .2;
   return;
);

最后我找到了 // @ts-ignore 并且成功了... 我是打字稿的新手,如果您只需要保持变量状态,我可以看到这是一个问题;只设置它。我还看到一些将 _var 名称命名为受保护类字段的约定,但也适用于这些实例?什么是正确的方法?我喜欢 TS 的好处,但作为新手,我花了很多时间来安抚 ts linter。

【问题讨论】:

I'm new to typescript and I could see this being a problem in instances were you just need to keep up a variables state; only ever setting it.如果你有一个从不读取的变量是没用的,把它去掉就行了。 如果你没有对状态做任何事情,为什么还要保留状态?当您对 tick 变量执行操作时,打字稿将停止抱怨。 哦……对了……太晚了,我正在阅读 lint 错误与阅读代码。我应该抓住它。就像你说的,一旦我做某事,一切都很好...... 【参考方案1】:

您可以在您的tsconfig.json 文件中禁用检查设置noUnusedLocalsfalse

查看compiler options 了解更多信息。

【讨论】:

我个人不喜欢在一年多的学习之后忽略这个错误,删除坏代码而不是留下它是个好主意。 我可以理解在某些实验中这会妨碍什么,例如在编写测试时。而且您可能很清楚这种违规行为,但不希望在暂时未使用的 vars/params 中进行注释/注释的麻烦。您只希望代码运行。从我所见,一个 lodal tslint.json 通常会有所帮助,但对 TS6133 没有帮助。 仍然存在,即使将其更改为 false。

以上是关于TypeScript 错误:声明了 foo 但它的值从未被读取。 TS6133的主要内容,如果未能解决你的问题,请参考以下文章

Typescript 显然为分派的 Thunk 推断出错误的类型

graphql 查询的 typescript 类型声明错误

为啥模块的导入导出会给出错误,因为声明了“BlogpostModule”但它的值从不读取.ts(6133)“角度7

错误消息:“函数声明了一个不透明的返回类型,但它的主体中没有返回语句来推断基础类型”

在 TypeScript 中使用单个模块生成声明文件

为啥 TypeScript 中的 'instanceof' 会给我错误“'Foo' 仅指一种类型,但在这里被用作值。”?