TypeScript 3.7.2 - 当前未启用对实验性语法“optionalChaining”的支持

Posted

技术标签:

【中文标题】TypeScript 3.7.2 - 当前未启用对实验性语法“optionalChaining”的支持【英文标题】:TypeScript 3.7.2 - Support for the experimental syntax 'optionalChaining' isn't currently enabled 【发布时间】:2020-03-21 06:47:33 【问题描述】:

在我的项目中,我使用的是 TS 3.7.2,它应该支持可选链接。但是当我尝试这样使用它时:const state = urlParams.state?.toString() 我得到了错误:

目前未启用对实验性语法“optionalChaining”的支持

将 @babel/plugin-proposal-optional-chaining (https://git.io/vb4Sk) 添加到 Babel 配置的“插件”部分以启用转换。

我查看了发行说明,没有看到有关为该功能添加 tsconfig 选项的任何要求。

我想知道我已经在使用 TS 时是否需要 babel 插件和配置,我应该如何修复错误?

【问题讨论】:

听起来你正在使用 create-react-app。上次我检查它不支持它使用的 babel 配置中的 optionalChaining 。请参阅此问题以获取更新:github.com/facebook/create-react-app/issues/7940 @BenClayton 谢谢!希望他们尽快发布该更新。您能否发表您的评论作为答案,以便我将其标记为已解决? 我已经添加了答案 【参考方案1】:

这听起来像是您使用的是旧版本的 create-react-app。

v3.3 之前的版本不支持它使用的 babel 配置中的 optionalChaining。

在 CRA v3.3 中添加了支持。有关如何升级,请参阅其他答案。

【讨论】:

【参考方案2】:

通过release of the CRA v3.3.0 解决。如果有人仍然有与标题相同的错误,请确保您已升级 react-scripts 包。

【讨论】:

更新也非常简单快捷:yarn add --exact react-scripts@3.3.0

以上是关于TypeScript 3.7.2 - 当前未启用对实验性语法“optionalChaining”的支持的主要内容,如果未能解决你的问题,请参考以下文章

vue 和 jest 的“当前未启用对实验语法 'jsx' 的支持”

当前未启用对实验性语法“jsx”的支持

SyntaxError:当前未启用对实验性语法“jsx”的支持

"loose": true is not fix 对实验性语法 'classProperties' 的支持当前未启用

Babel throwing 当前未启用对实验性语法“jsx”的支持

vue.js - 动态导入导致错误:当前未启用对实验语法“dynamicImport”的支持