如何使用Create React App和TypeScript启用可选链接
目前不支持实验语法“optionalChaining” 启用 我得到了上面的错误。我遵循这一点,在我的如何使用Create React App和TypeScript启用可选链接,typescript,babeljs,create-react-app,Typescript,Babeljs,Create React App,目前不支持实验语法“optionalChaining” 启用 我得到了上面的错误。我遵循这一点,在我的设计依赖项中添加了“@babel/plugin建议可选链接”:“^7.7.4” 然后我得到了这个错误 将@babel/插件提案可选链接()添加到 Babel配置的“插件”部分启用转换 因此,我遵循这一点,将.babelrc文件添加到项目的根目录中 { "presets": ["react", "es2015","stage-1"], "plugins": ["transform-
设计依赖项中添加了“@babel/plugin建议可选链接”:“^7.7.4”
然后我得到了这个错误
将@babel/插件提案可选链接()添加到
Babel配置的“插件”部分启用转换
因此,我遵循这一点,将.babelrc
文件添加到项目的根目录中
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
这似乎没有任何作用。我还听到有人提到,Create React App
不允许您修改巴贝尔的配置。因此,我的问题是如何在不重新连接整个CRA
的情况下启用可选链接
p.S.我正在使用的“typescript”:“^3.7.2”
,或者至少我的包.json
是这么说的。我尝试了npm安装
,以确保它得到更新。不确定CRA
是否在下面做了一些奇怪的事情,并不知何故使用了较旧版本的TypeScript
编辑:
当我使用CRA
启动项目时,我相信我们使用的是TypeScript:3.6.x
。我想使用可选链接
,所以我将我的包.json
文件更改为“typescript”:“^3.7.2”
,然后npm安装
。我想问题是,TypeScript
知道我正在使用3.7.2
,但是CRA
仍然有较旧的配置,我不确定如何更新。创建React应用程序使用babel传输TypeScript,因此它不使用您的npm安装版本的TypeScript。react脚本的3.3.0版支持TypeScript 3.7。您可以将其安装并与以下设备一起使用:
纱线添加反应-scripts@3.3.0
-或-
npm安装-s react-scripts@3.3.0
package.json
{
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test --env=jsdom"
},
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
"customize-cra": "^0.4.1",
"react-app-rewired": "^2.1.3"
}
...other
}
配置覆盖.js
const { useBabelRc, override } = require('customize-cra');
module.exports = override(useBabelRc());
.babelrc
{
"plugins": ["@babel/plugin-proposal-optional-chaining"]
}
React脚本3.3.0及更高版本支持它。无需安装react-scripts@next.
只要放入package.json“react scripts”:“^3.3.0”
,它就会工作。您可以使用。可选链接现在是本机支持的功能。我使用的是TypeScript^3.7.2
。或者至少我的package.json
就是这么说的。我也尝试过npm安装。我在OP中提到过,我不想重新连接整件事“那么我的问题是如何在不重新连接整个CRA的情况下启用可选链接?”
如果我已经在使用自定义CRA
来覆盖配置,如何使用它?例如:module.exports=function override(config){config.resolve.modules=[path.resolve(u dirname,'src'),'node_modules'];return config;}代码>嗯,我不再与我为之进行react应用程序配置的公司合作。所以我不能很容易地测试这个。但很高兴知道。这可能会对未来的读者有所帮助。现在我回头看,这和@LukeP建议的是一样的lol@HafizTemuri卢克更新了他的答案。他的回答一开始是反应-scripts@nextCan您在react scripts 3.3.0
上使用可选链接而不使用TS?否-可选链接是一种类型脚本功能,需要传输到JavaScript才能在浏览器或NodeJS中工作。@Badrush可选链接是TS功能,没有TS您如何使用它?就像我说的,我能不能只吃蛋黄而不打碎鸡蛋。答案很简单:不!但希望他们能尽快将其添加到vanilla JS中。