私はクロージャコンパイラ用にすべてのJavaScriptに注釈を付ける過程にありますが、現在私が持っているコードは、オブジェクト内のクラスの定義に大きく依存しています。
Class.SomeClass = function() {};
Class.SomeOtherClass = function() {};
それよりも:
function SomeClass() {};
SomeClass.prototype = {};
ただし、extendsに注釈を付けようとすると、警告が表示されます...コンパイラは、Class.SomeClassのタイプを判別できないと述べています。
JSC_TYPE_PARSE_ERROR: Bad type annotation. Unknown type Class.SomeObject
* @extends Class.SomeObject
以下のコードを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);