在 WebStorm 中,如何禁用警告(又名“快速修复”):
TS80006: This may be converted to an async function.
Run Code Online (Sandbox Code Playgroud)
我所说的“警告”是指函数名称带有下划线,并且我在悬停时看到警告文本:
我希望此警告的设置位于Settings / Editor / Inspections
某处,但当我搜索“异步函数”或“快速修复”或“检查”时,我找不到它。
(我假设这个设置在 WebStorm 和 IntelliJ 中是相同或相似的)
例如,对于以下函数会显示此警告:
const f = (): Promise<string[]> => {
return util()
.then( mapFunction1 )
.then( mapFunction2 );
};
Run Code Online (Sandbox Code Playgroud)
WebStorm建议改为:
const f = async (): Promise<string[]> => {
const s = await util();
const s_1 = await mapFunction1( s );
return mapFunction2( s_1 );
};
Run Code Online (Sandbox Code Playgroud)
但我仍然更喜欢这个.then()
变体,因为它对我来说更具可读性。
我在这个答案之后找到了“编辑器/意图”部分,但是在禁用“转换为异步函数”后,警告仍然出现:
有趣的是,此后,“更多操作”菜单中不再建议“转换为异步函数”,但“建议”仍然显示在代码中(包括悬停框):
在我的React项目中,我收到此错误:
SyntaxError: ... Invalid parenthesized assignment pattern
const add = (a, b) = { return a + b; };
^
Run Code Online (Sandbox Code Playgroud)
我确实理解该错误,但令我惊讶的是我找不到有关它的任何信息。
我确实理解这里的问题(这个箭头函数中缺少“>”),但我想知道(1)这个错误到底来自哪里(不是浏览器?),以及(2)我在哪里可以找到有关它的信息。
错误消息显然将此解释为错误的赋值,而不是错误的箭头函数:
const add = (a, b) = { return a + b; };
// error ----^
// actually wrong --^
Run Code Online (Sandbox Code Playgroud)
如果我在NodeJs CLI中编写相同的语句,我会得到:
const add = (a, b) = { return a + b; };
// error ----^
// actually wrong --^
Run Code Online (Sandbox Code Playgroud)
在Firefox 控制台 …
每次我尝试在新项目上运行 npm start 时,我都会不断收到此错误。有谁知道或知道如何解决这个问题?
项目依赖树可能有问题。这可能不是 Create React App 中的错误,而是您需要在本地修复的问题。
Create React App 提供的react-scripts 包需要依赖:
"babel-jest": "^26.6.0"
不要尝试手动安装它:您的包管理器会自动安装。然而,在树的更高层检测到了不同版本的 babel-jest:
D:\node_modules\babel-jest(版本:24.9.0)
已知手动安装不兼容的版本会导致难以调试的问题。
如果您希望忽略此检查,请将 SKIP_PREFLIGHT_CHECK=true 添加到项目中的 .env 文件中。这将永久禁用此消息,但您可能会遇到其他问题。
要修复依赖关系树,请尝试按确切顺序执行以下步骤:
- 删除项目文件夹中的package-lock.json(不是package.json!)和/或yarn.lock。
- 删除项目文件夹中的node_modules。
- 从项目文件夹中的 package.json 文件中的依赖项和/或 devDependency 中删除“babel-jest”。
- 运行 npm install 或yarn,具体取决于您使用的包管理器。
在大多数情况下,这应该足以解决问题。如果这没有帮助,您可以尝试其他一些方法:
如果您使用npm,请安装yarn(http://yarnpkg.com/)并重复上述步骤。这可能会有所帮助,因为 npm 已知软件包提升问题,这些问题可能会在未来版本中得到解决。
检查 D:\node_modules\babel-jest 是否在项目目录之外。例如,您可能不小心在主文件夹中安装了某些内容。
尝试在项目文件夹中运行 npm ls babel-jest 。这将告诉你哪个其他包(除了预期的反应脚本)安装了 babel-jest。
如果没有其他帮助,请将 SKIP_PREFLIGHT_CHECK=true 添加到项目中的 .env 文件中。如果您仍想继续,这将永久禁用此飞行前检查。
PS 我们知道此消息很长,但请阅读上面的步骤:-) 我们希望它们对您有所帮助!
npm 错误!代码 ELIFECYCLE npm 错误!errno 1 npm 错误!react-portfolio@0.1.0 开始:
react-scripts start
npm 错误!退出状态 1 npm ERR!npm 错误!在react-portfolio@0.1.0 启动脚本处失败。npm 错误!这可能不是 npm …