selectItem(item, type) {
// if (type === 'year') {
// this.nowYear = item;
// }
type === 'year' ? this.nowYear = item : this.nowMonth = item;
},
这样写ESlint会报错,
使用if else 就可以,为什么?这样写那里不规范了
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先回复 @Xeira :
这是不对的,从语法上来说,三目运算符后面的两项只要有返回值就是符合语法的。
只要是表达式就一定有返回值,就连
赋值表达式都是如此。比如说吧:
赋值表达式返回的值就是等号的右值。
你还能在
if、while等等的条件判断语句里面赋值的,虽然并不常见就是了。回到题主的问题中,这个问题其实是因为你的eslint规则问题……
你看给出的错误提示:
no-unused-expressions,别告诉我你不认识英文……这条规则的具体解释在这里:no-unused-expressions
这条规则有两个子规则:
一个是是否允许短路求值(
allowShortCircuit)还有一个是是否允许三目运算符(
allowTernary)所以你在eslint的配置文件里
rules规则里面设定下就行了,短路求值和三目运算都允许:想要单独禁止某一项,比如下面是允许三目,不允许短路:
void(type == 'year': ...? ...)应该是this指向的问题吧。。。不是用严格模式了。this找不到window了。
把this换成window.
不好意思。答非所问了。
三目运算符期待一个布尔返回值,显然你的后面两个选项都不符合要求