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
文件中禁用检查设置noUnusedLocals
到false
。
查看compiler options 了解更多信息。
【讨论】:
我个人不喜欢在一年多的学习之后忽略这个错误,删除坏代码而不是留下它是个好主意。 我可以理解在某些实验中这会妨碍什么,例如在编写测试时。而且您可能很清楚这种违规行为,但不希望在暂时未使用的 vars/params 中进行注释/注释的麻烦。您只希望代码运行。从我所见,一个 lodal tslint.json 通常会有所帮助,但对 TS6133 没有帮助。 仍然存在,即使将其更改为 false。以上是关于TypeScript 错误:声明了 foo 但它的值从未被读取。 TS6133的主要内容,如果未能解决你的问题,请参考以下文章
Typescript 显然为分派的 Thunk 推断出错误的类型
为啥模块的导入导出会给出错误,因为声明了“BlogpostModule”但它的值从不读取.ts(6133)“角度7
错误消息:“函数声明了一个不透明的返回类型,但它的主体中没有返回语句来推断基础类型”
为啥 TypeScript 中的 'instanceof' 会给我错误“'Foo' 仅指一种类型,但在这里被用作值。”?