gpt4 book ai didi

google-closure-compiler - Closure Compiler 使用命名空间枚举发出警告

转载 作者:行者123 更新时间:2023-12-03 17:59:44 32 4
gpt4 key购买 nike

以下示例代码生成有关高级优化的编译器警告:“JSC_UNSAFE_NAMESPACE:为命名空间 NS 创建的别名不完整”。如果我删除@enum 注释,它不会发出警告。

var NS = {};

/**
* @enum {string}
*/
NS.type = {
FOO : 'bar'
};

NS.foobar = function(){ alert(NS.type.FOO); };

window['NS'] = NS;
window['NS']['foobar'] = NS.foobar;

仅导出函数而不导出命名空间似乎也可行:

window['NS_foobar'] = NS.foobar;

我做错了什么?有没有解决的办法?如果可能,我宁愿不包含 Closure 库。

最佳答案

编译器希望将枚举值折叠成单个变量:

NS.type.FOO 变成 NS$type$FOO。您导出的“NS”不会包含您期望的内容。

我怀疑你想要这样的东西:

window['NS'] = {}; // an external namespace object.
window['NS']['foobar'] = NS.foobar; // add 'foobar' to the external namespace.

关于google-closure-compiler - Closure Compiler 使用命名空间枚举发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8178382/

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