我想为闭包编译器声明一些externs,但不知道如何做?
(function(window) {
window.myapi = window.myapi || {};
var myapi = window.myapi;
myapi.hello = function() {
window.document.write('Hello');
}
}(window));
我不知道如何为window.myapi,window.myapi.hello做这件事?
答案 0 :(得分:3)
Externs是有效的javascript,但它们只是类型信息。它们不应包含定义(或仅用于函数空定义)。
这是一个开始:How to Write Closure-compiler Extern Files Part 1
关于您的具体示例的几点说明:
这是一个更正的例子:
/** @const */
window.myapi = {};
/** @return {undefined} */
window.myapi.hello = function() {};
在闭包中,window
(全局)对象的编译器属性与全局变量完全不同。如果你需要两者,你必须两次声明。
/** @const */
var myapi = {};
/** @return {undefined} */
myapi.hello = function() {};