Closure Compiler:重命名变量及其属性

Closure Compiler: renaming of variable and its properties

我正在为我的项目使用闭包编译器。

我的一个项目文件有这样的声明:

var data = window.somedata || {}; 

文件 returns 此 object 正在被其他文件使用。 Closure编译器在使用时重命名此数据的所有属性object(在高级模式下)。

如何告诉编译器不要重命名与此变量相关的任何 属性?

您可以通过为每个 属性 访问使用引号来防止重命名:

console.log(data['myprop'])

或者通过使用 externs。外部是定义类型的单独文件。

外部

/** @typedef {{prop1: string, prop2: boolean}} */
var FileObj;

来源

var data = window.somedata || /** @type {FileObj} */ ({}); 

More about writing externs