我得到了以下线型错误:Unconditional use of conditional expression for default assignment
下面是怎么回事?
(myOverride) ? myOverride : MAGIC_HOST,
如果定义了myOverride,我希望使用myOverride,如果没有定义,则使用env MAGIC_HOST
。
发布于 2018-01-22 11:49:50
显然,您使用的是ESLint (因为该错误是ESLint)错误。这是因为规则是用来标记不必要地使用条件运算符(他们称之为“三元”)。从链接的文档:
另一个常见的错误是使用一个变量作为条件测试和结果。在这种情况下,逻辑OR可以用来提供相同的功能。下面是一个示例: // Bad var foo = bar?bar : 1;// Good var foo = bar \x l;
因此,规则是告诉您使用myOverride || MAGIC_HOST
代替。
你不必这么做,你展示的代码并没有错。只是它不符合ESLint规则。
1“他们称它为‘三元’--条件运算符是--三值运算符(接受三个操作数的运算符,就像*
是二进制操作数-接受两个操作数的运算符)。现在,,,唯一的三值运算符JavaScript。但随着语言的发展,这并不一定总是正确的。它被正确地称为运算符。
发布于 2018-01-22 11:43:46
https://stackoverflow.com/questions/48389096
复制相似问题