2016-06-04 1 views
1

Ich arbeite an einem Projekt, das so konzipiert ist, dass die Referenzen für bestimmte JavaScript-Objekte von den Dateien, für die sie deklariert wurden, abstrahiert und dann später als Eigenschaften eines speziellen Objekts verfügbar gemacht werden.Wie WebStorm wissen, dass die Eigenschaften eines Objekts mit einer Deklaration in einer anderen Datei verknüpft sind?

Zum Beispiel lassen Sie uns sagen, ich habe die folgenden Dateien:

  • main.js
  • content.js

JavaScript in content.js in einem völlig anderen Kontext ausgeführt wird , aber Variablen, die in main.js definiert wurden, sind unter einem speziellen Objekt zugänglich. Zum Beispiel, wenn wir folgenden in main.js haben ...

exportOptions({ 
    name: "John Smith" 
}); 

Diese Informationen in content.js durch den Aufruf zur Verfügung stehen ...

self.options.name; 

Wie kann ich lassen WebStorm weiß, dass self.options.name in content.js ist verbunden mit name von main.js OHNE zusätzlichen ausführbaren Code zu jedem JavaScript-Dateien hinzufügen?

Gibt es irgendwelche WebStorm-spezifischen Befehle/Anweisungen, die in JavaScript-Kommentare oder JSDoc geschrieben werden können, die WebStorm verwenden kann, um diesen Link zu bilden?

Ich bin hauptsächlich daran interessiert, eine Lösung zu finden, weil ich es liebe, Autocomplete zu machen und Code automatisch auf Fehler/Warnungen/Tippfehler zu prüfen. Gerade jetzt wirft WebStorm Warnungen, wenn self.options.name zum Beispiel verwendet wird, weil es in context.js nicht definiert ist.

Edit:

Ich weiß, dass ich folgendes in main.js stattdessen tun könnte, aber ich bin immer noch nicht sicher, wie WebStorm die Verbindung zwischen options in main.js verstehen haben und self.options in content.js ohne ausführbare JavaScript-Zeilen hinzuzufügen.

var options = { 
    name: "John Smith"; 
}; 

exportOptions(options); 

Antwort

0

Sieht aus wie das Hinzufügen JSDoc mit @lends Tag, bevor das Objekt genug ist:

exportOptions(/** @lends context.options */ { 
    name: "John Smith" 
}); 
Verwandte Themen