1

In Sublime oder VS Code können Sie einen speziellen Kommentar (DocBlockr oder JSDocs als Beispiel) definieren, den Intellisense erkennt und Ihnen intelligente Tooltip-Funktionalität bietet.Intellisense auf Objekt mit speziellen Kommentaren

Ich habe eine Funktion, die einen Optionsparameter übernimmt. Dies ist ein Objekt und kann mehrere Eigenschaften haben, die Funktionen enthalten könnten, Strings, Ints usw. Ein Beispiel wäre:

function foo(options){ 
    options = options || {}; 

    if(options.foo){ 
     console.log(options.foo); 
    } 
    if(options.bar) { 
     console.log(options.bar()); 
    } 
} 
foo({foo: 'foo', bar: function(){return 'bar';}}); 

ich einen DocBlockr Kommentar hinzufügen könnte, aber das wäre nur ein Tooltip ergeben, die es braucht eine zeigt Objekt.

Ist es möglich, irgendeine Art von Definition dieses Optionsobjekts zu erstellen, so dass es mit Intellisense auftauchen würde?

Antwort

1

Für Sublime Text 3, können Sie meine JavaScript Enhancement Plugin (man könnte es findet auch auf Paketkontrolle), die es in ein JavaScript-IDE verwandeln wie (Es verwendet Flow unter der Haube). In Ihrem Fall mit Flow type annotations, können Sie diesen Code verwenden, um zu bekommen, was Sie wollen: enter image description here

auch auf mehrere:

//@flow 

function foo(options /*: { foo: string, bar: function} */){ 
    options = options || {}; 

    if(options.foo){ 
     console.log(options.foo); 
    }  
    if(options.bar) { 
     console.log(options.bar()); 
    } 
} 

foo() 

Also, auf dem Sublime Text 3 Editor, werden Sie etwas wie diese erhalten Linien (/* : müssen auf der gleichen Zeile des Parameters sein):

enter image description here

auch das Plugin nicht nur eine intelligente Javascript zur automatischen Vervollständigung bietet aber auch viele Funktionen zum Erstellen, Entwickeln und Verwalten von JavaScript-Projekten (Echtzeitfehler, Code-Refactoring, etc.).

+0

Das sieht toll aus! Gibt es jedoch eine Möglichkeit, die Definitionen über der Funktion mit mehreren Zeilen zu verwenden? Meine Optionen Objekte können ziemlich groß sein –

+0

yeah! Ich habe meine Antwort mit einem neuen Screenshot aktualisiert. Sie können alle möglichen Möglichkeiten auf der Flow-Site sehen. –

+0

Woah! Vielen Dank! Ich werde es definitiv versuchen. Haben Sie Pläne für einen VS-Code-Port? –

Verwandte Themen