2017-03-17 37 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() {}; 

這是類型只是粗略的估計 - 我還沒有與摩卡熟悉寫實習醫生而不去追捕文檔參考。但希望它能指出你正確的方向。

相關問題