gpt4 book ai didi

javascript - 为什么我不能在 JSX 中以这种方式使用三元运算符和箭头函数?

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:59 24 4
gpt4 key购买 nike

使用 babel-preset-react(编辑:babel 版本:v6.26.0),以下表达式失败并出现错误“无效的左侧在箭头函数参数中”(try on babel repl):

true ? ("test") : x => 42      //FAILS, but only with `babel-preset-react`

但只要稍作修改,它就可以工作:

true ? "test" : x => 42        //works fine

这两种情况在看似任何其他配置中都按预期工作。

这是一个错误吗?还是 JSX 解析的一部分导致了这种情况的发生?

最佳答案

箭头函数的解析方式与常规函数不同见Parsing order

Although the arrow in an arrow function is not an operator, arrow functions have special parsing rules that interact differently with operator precedence compared to regular functions.

let callback;

callback = callback || function() {}; // ok

callback = callback || () => {};
// SyntaxError: invalid arrow-function arguments

callback = callback || (() => {}); // ok

它一定与三元运算符的结合性(从右到左)有关,请参阅 link

关于javascript - 为什么我不能在 JSX 中以这种方式使用三元运算符和箭头函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48309694/

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