首页 > 解决方案 > “解析错误:需要参数表达式。eslint”与 React 中的 Typescript 映射函数

问题描述

从这行代码

{inputFields.map(if => <Input inputField={if} /> )}

我在单词图上收到此错误

Parsing error: Argument expression expected.eslint

inputFields 在表单中,在 div 中

<div>
    <form>
        {inputFields.map...}
    </form>
</div

输入字段是一个数组

inputFields: InputField[]

这个答案表明这可能与打字稿版本有关。

在我的package.json,我有我正在使用"typescript": "^3.8.3"的,但在右下角,我认为它是说我使用的是 4.0.2 版?

在此处输入图像描述

当我单击该数字时,我可以将数字更改为,3.9.7但这不会改变错误


我看到的其他答案与我使用 map 函数的用例无关

标签: reactjstypescripteslint

解决方案


if是 Javascript 中的关键字。尝试重命名您的变量:

{inputFields.map(field => <Input inputField={field} /> )}

语句与表达式

表达式是解析为值的代码

const add = (a, b) => a + b
add(10, 20) // => 30 
'Hello' // => 'Hello'

语句是使某事发生的代码

if (x < 10) // doesn't resolve
break // doesn't resolve
switch // doesn't resolve

因此警告:““Parsing error: Argument expression expected.eslint”告诉你一个表达式(解析为一个值的东西)是预期的,但是你传递了一个语句(它不能被解析为一个值)

您不能将语句分配给变量,只能分配表达式。


推荐阅读