Visual Studio bundler 导致 JS Uncaught ReferenceError: Cannot access variable before initialization 错误
Posted
技术标签:
【中文标题】Visual Studio bundler 导致 JS Uncaught ReferenceError: Cannot access variable before initialization 错误。我该如何解决这个问题?【英文标题】:Visual Studio bundler causes JS Uncaught ReferenceError: Cannot access variable before initialization error. Anyone know how I can fix this?Visual Studio bundler 导致 JS Uncaught ReferenceError: Cannot access variable before initialization 错误。有谁知道我该如何解决这个问题? 【发布时间】:2022-01-11 09:11:09 【问题描述】:我有一个 AJAX 请求如下:
$.ajax(
method: 'GET',
url: '/api/some-data',
headers:
'Content-Type': 'application/json'
,
success: function(data)
if (data != null)
var userData = data;
for (var key of Object.keys(userData))
if (userData[key].BalanceYear == null)
var accYear = "Today";
else
var accYear = userData[key].BalanceYear;
// ETC, ETC, ETC
这很好用。但是,当我将它捆绑在 Visual Studio 中时,它会转换为:
$.ajax(
method: "GET",
url: '/api/some-data',
headers:
"Content-Type": "application/json"
,
success: function(n)
var t, i, r, u, f, e;
if (n != null)
t = n;
for (i of Object.keys(t))
r = t[i].BalanceYear == null ? "Today" : t[i].BalanceYear,
u = yearsArr.findIndex(n=>n === r),
u === -1 && (yearsArr.push(r),
yearsArr.sort(function(n, t)
return n - t
));
const o = new Map;
for (const AccountName: n, Amount: i, BalanceYear: t of t)
o.has(n) || o.set(n, yearsArr.map(()=>0)),
f = t ? yearsArr.indexOf(t) : yearsArr.indexOf("Today"),
o.get(n)[f] = i;
function c(n, t)
return v(n) || a(n, t) || h(n, t) || l()
// ETC, ETC, ETC
我得到的问题是:
未捕获的 ReferenceError:在初始化之前无法访问 't'
上线:
for (const AccountName: n, Amount: i, BalanceYear: t of t)
由于我无法真正控制 t
,因此我不确定如何解决此问题,尤其是在问题行上方声明了 t
(我还尝试在问题行之外声明 t
AJAX 功能)。
有人知道我能做些什么来解决这个问题吗?
【问题讨论】:
您介意分享您转换为有问题行的代码吗? 【参考方案1】:我发现这是由于这里的const
for (const AccountName: n, Amount: i, BalanceYear: t of t)
我删除了它,它现在似乎可以工作了。不幸的是,我不知道这背后的逻辑。
【讨论】:
以上是关于Visual Studio bundler 导致 JS Uncaught ReferenceError: Cannot access variable before initialization 错误的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 将 JavaScript 解释为导致错误的 C#
什么会导致 Visual Studio 中的 LNK2019 错误?
是啥导致 MS Visual Studio 无法识别构建错误?
是啥导致 Visual Studio 2017 中的文件名为空