gpt4 book ai didi

javascript - 使用 "Class"容器对象时,闭包编译器 @extends 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:27 24 4
gpt4 key购买 nike

我正在为闭包编译器注释我所有的 javascript,但是——我目前拥有的代码严重依赖于在对象中定义类,即:

Class.SomeClass = function() {};
Class.SomeOtherClass = function() {};

而不是:

function SomeClass() {};
SomeClass.prototype = {};

但是,它在尝试注释扩展时给了我一个警告...编译器声明我无法确定 Class.SomeClass 是什么类型:

JSC_TYPE_PARSE_ERROR: Bad type annotation. Unknown type Class.SomeObject 
* @extends Class.SomeObject

在下方粘贴以下代码 into closure compiler with ADVANCED_OPTIMIZATIONS :

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// ==/ClosureCompiler==

(function($) {

"use strict";

var Class = {};

/**
* @constructor
*/
Class.ObjectA = function() {};
Class.ObjectA.prototype = {};

/**
* @constructor
* @extends Class.ObjectA
*/
Class.ObjectB = function() {};
Class.ObjectB.prototype = $.extend(new Class.ObjectA(), {
initialize: function() {}
});


window.test = new Class.ObjectB();
window.test.initialize();

})(jQuery);

最佳答案

答案并不明显。您只需将 @const 添加到您的 Class 命名空间。

/** @const */
var Class = {};

关于javascript - 使用 "Class"容器对象时,闭包编译器 @extends 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14619892/

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