如何修复 VSCode 中的"Expression expected. ts(1109)"?



我遇到了VSCode错误"预期的表达式。ts(1009(",同时打开其中一个 reactjs 文件。 doif以红色突出显示。但是我可以在本地开发环境中运行代码,编译也没有问题。我想这是由于 VSCode 编辑器错误。

其他编辑器如Atom或Sublime Text都可以。我在 React 中使用了三元操作来解决它,但如果else if太多,事情就会变得非常复杂。

<div className='form'>
    // Form stuffs
</div>
{
    do{
      if (hasBreakfast) {
        <span>Breakfast Included</span>
      } else if {
        <span>Breakfast Not Included</span>
        }
    }
}

有没有方法可以解决VSCode中的警告?

就我而言,我使用三元条件收到这个Expression expected.ts(1109)错误。

return (
  <Fragment>
  // JSX to render goes here...
  </Fragment>
);

我在最后一行收到相同的错误。我添加了片段元素以强制返回 (( 接收一个父元素。您也可以通过将返回代码包装为"div"元素来实现此目的。但是,那里的问题是您将拥有随机的空"div"。

文档比我解释得更好。 https://reactjs.org/docs/fragments.html

do表达式,如

原始问题中使用的,如果你使用的是支持do表达式提案的 babel 语法/插件,实际上是"有效的"JSX/JS 语法。VS Code 不满意的原因是 TypeScript 本身不支持该语法。如果它无论如何都可以在你的开发环境中工作,那可能是 Babel。

导入成本 VSCode 扩展 我遇到了此错误,刚刚卸载解决了我的问题。

if 语句需要一个表达式来断言是否应使用该代码块。

前任:

if (a === true) {
  // do something
} else if (b === true) {
  // do something else
}

如果您只想渲染Breakfast Not Included则可以只使用else而不使用if。或者做一个三元更简单的

{
  hasBreakfast ? <span>Breakfast Included</span> : <span>Breakfast Not Included</span>;
}

最新更新