gpt4 book ai didi

javascript - 应用已在 try/catch 中声明

转载 作者:行者123 更新时间:2023-11-29 21:10:48 25 4
gpt4 key购买 nike

我有以下try/catch:

try {
var { app } = require('electron').remote;
} catch (e) {
var { app } = require('electron');
}

即使它是有效的,ESLint 也有一个问题,表明 app 已经被声明。

因此,我尝试将 var 移动到 try/catch 上方,但 = 出现错误,表明它是一个 Unexpected token像这样:

var app;
try {
{ app } = require('electron').remote;
} catch (e) {
{ app } = require('electron');
}

这样做的正确方法是什么,这样 ESLint 就不会提示?

最佳答案

首先,由于您明显使用的是 ES2015+(又名“ES6+”),请考虑使用 letconst 而不是 var .在 ES2015+ 世界中,var 基本上没有用。 (但是下面的两个也适用于 var。)

解析问题是因为 { 看起来像 block 的开头。您可以将整个作业 package 在 () 中以解决这个问题:

let app;
try {
({ app } = require('electron').remote);
} catch (e) {
({ app } = require('electron'));
}

示例(伪装 require):

// fake require
function require(name) {
return {app: {name: "I'm the app"}};
}

let app;
try {
({ app } = require('electon').remote);
} catch (e) {
({ app } = require('electron'));
}
console.log(app);

或者根本不使用解构:

let app;
try {
app = require('electron').remote.app;
} catch (e) {
app = require('electron').app;
}

// fake require
function require(name) {
return {app: {name: "I'm the app"}};
}

let app;
try {
app = require('electron').remote.app;
} catch (e) {
app = require('electron').app;
}
console.log(app);

关于javascript - 应用已在 try/catch 中声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41987045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com