2017-03-17 60 views
0

构造函数函数的正确类型在函数对象上还具有Google闭包编译器的属性?用于静态字段函数的闭包编译器实例

这是第一次尝试Closure compiler debugger

应用程序代码

const Mocha = /** @type {!MochaJS} */ (require('mocha')); 

const mochaInstance = new Mocha(); 
const Suite = Mocha.Suite; 

封闭实习医生

/** @constructor */ 
const MochaJS = function() {}; 

/** @type {!MochaJS.Suite} */ 
MochaJS.prototype.Suite; 

/** @record */ 
MochaJS.Suite = function() {}; 

回答

1

困难来自封闭,因为编译器不处理外部模块定义好。另外,不要将构造函数/命名空间与实例混淆。他们是不同的。

应用

// A constructor type for Mocha 
const Mocha = /** @type {!function(new:MochaJS)} */ (require('mocha')); 
const mochaInstance = new Mocha(); 

const Suite = /** @type {!MochaJSSuite} */ (Mocha.Suite); 

实习医生

/** @constructor */ 
const MochaJS = function() {}; 

/** @function */ 
MochaJSSuite = function() {}; 

这是类型只是粗略的估计 - 我还没有与摩卡熟悉写实习医生而不去追捕文档参考。但希望它能指出你正确的方向。