0

Was ist der richtige Typ für eine Konstruktorfunktion, die auch Eigenschaften auf dem Funktionsobjekt mit Googles Closure Compiler hat?Abschluss Compiler Externs für Funktion mit statischen Feldern

Hier ist ein runnable ersten Versuch auf der Closure compiler debugger.

Anwendungscode

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

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

Closure Externen

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

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

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

Antwort

1

Die Schwierigkeit kommt, weil Closure-Compiler keine externen Moduldefinitionen gut umgehen kann. Verwechseln Sie auch nicht den Konstruktor/Namespace mit einer Instanz. Sie sind anders.

Anwendung

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

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

Externen

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

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

Dies ist nur grobe Schätzungen für die Typen - ich bin nicht vertraut genug mit Mokka, um die Externen zu schreiben, ohne nach unten gehen auf die Jagd die Dokumentationsreferenz. Hoffentlich wird es dich aber in die richtige Richtung weisen.

Verwandte Themen