gpt4 book ai didi

javascript - 尝试在箭头函数中返回三元运算符时如何修复 ES6 Eslint 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:35 26 4
gpt4 key购买 nike

我知道 () => {} 不需要返回,但是如果它不存在,那么 Eslint 会提示未使用的表达式。

export const isInInterval = (from, to, target) => {
if (isNaN(Date.parse(to)) && isNaN(Date.parse(from)) === true) {
return
}
const toUnixTimestamp = time => new Date(time).getTime()
toUnixTimestamp(to) - target > toUnixTimestamp(from) ? true : false
}

函数如下:它试图找出某个指定的日期(to) 减去指定的时间段(target) 是否晚于from。如果是这样,它应该返回 true,反之则返回 false。我不断遇到 eslint 错误 expected assignment to a function call and instead saw expression

我多次尝试重写它,但在大多数迭代中我得到了`arrow function expects no return error, ex.:

return (toUnixTimestamp(to) - target > toUnixTimestamp(from)) ?真 : 假

最佳答案

I understand that () => {} does not need return

事实并非如此。只有当 => 后面是一个单个表达式 时,箭头函数才会隐式返回。如果你使用 => {,左括号 { 表示一个功能 block 的开始,你确实需要明确地 return 在 block 的末尾(或任何你想返回东西的地方)。

目前,您的代码根本没有返回任何东西 - 这就是 linting 错误试图告诉您的 - true : false 目前未被使用,它只是一个孤立的表达。

因此,只需将 return 语句添加到条件的开头:

export const isInInterval = (from, to, target) => {
if (isNaN(Date.parse(to)) && isNaN(Date.parse(from)) === true) {
return
}
const toUnixTimestamp = time => new Date(time).getTime()
return toUnixTimestamp(to) - target > toUnixTimestamp(from)
? true
: false
}

或者,因为 > 的计算结果已经是 boolean,您可以完全省略条件运算符:

return toUnixTimestamp(to) - target > toUnixTimestamp(from)

这是一个示例,说明如何编写确实使用隐式返回的箭头函数:

export const isEarlyTimestamp = (timestamp) => (
timestamp < 4000000
? true
: false
);

关于javascript - 尝试在箭头函数中返回三元运算符时如何修复 ES6 Eslint 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com