浏览器:标识符X已经声明

Non*_*Non 28 javascript ecmascript-6

我在我的项目中使用ES6和Babel,当我宣布我的一个时,我收到一个错误 const

'use strict';

const APP = window.APP = window.APP || {};
const _ = window._;

APP.personalCard = (function () {

   ...

}());
Run Code Online (Sandbox Code Playgroud)

错误

未捕获的TypeError:已声明标识符'APP'

这就是整个文件,我没有在该文件中的任何其他地方声明.但我已经声明var在其他文件的顶部.

你认为它应该是什么?

Ber*_*rgi 20

但我已经声明var在其他文件的顶部.

那就是问题所在.毕竟,这会在同一个(全局)范围内对同一个名称进行多次声明 - 这会引发错误const.

相反,使用var,只在主文件中使用一个声明,或仅仅分配给window.APP.
或者立即使用ES6模块,让模块捆绑器/加载器按预期方式处理它们.


sam*_*bua 6

我有一个非常接近的问题,但就我而言,它是Identifier 'e' has already been declared

就我而言,是由于使用通过缩小器(丑化器)生成的try {} catch (e) { var e = ... }字母而引起的e

所以可以使用更好的解决方案catch(ex){}ex作为Exception

希望搜索过类似问题的人会发现这个问题有帮助。