为啥我的三元运算符会出现这些错误?

Posted

技术标签:

【中文标题】为啥我的三元运算符会出现这些错误?【英文标题】:Why do I get these errors with my ternary operator?为什么我的三元运算符会出现这些错误? 【发布时间】:2021-12-13 20:05:24 【问题描述】:

这是我在控制台中得到的:Unnecessary use of boolean literals in conditional expression no-unneeded-ternary.

我只是想做一个三元运算符来验证游戏的状态,并且只有当游戏已经开始并且 user.role 与玩家相等时,我才禁用按钮。我正在使用 reactjs,并在 FormField 钩子的帮助下制作了一个表单。

disabled =(game.state === 'started' && user.role === PLAYER) ? true : false 

【问题讨论】:

game.state === 'started' && user.role === PLAYER 已经计算为布尔值。 【参考方案1】:

三元运算符是不必要的:

disabled =(game.state === 'started' && user.role === PLAYER) 

【讨论】:

谢谢你!现在我明白了:TypeError: Cannot read properties of undefined (reading 'state') @Joe 表示gameundefined【参考方案2】:

在这种情况下不需要使用语句,ESlint 让你知道它是多余的,因为从该语句产生的值已经是一个布尔值,你可以创建一个更简单的代码。

只写:

disabled = (game.state === 'started' && user.role === PLAYER)

【讨论】:

以上是关于为啥我的三元运算符会出现这些错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用“if-else”语句会在看似相同的三元运算符构造不会产生 TypeScript 编译器错误?

为啥带有 some 方法的三元运算符会使此语句为假?

C# - 为啥我不能在字符串中使用三元运算符? [复制]

为啥在三元运算符中使用“0”会返回第一个值?

为啥 Go 没有三元条件运算符 [关闭]

可空类型和三元运算符:为啥是`? 10:null`禁止? [复制]