依存関係管理にrequire.jsを使用し、Google Closureアノテーションを使用してオートコンプリートを強化します(WebStorm / IDEAで)。Backboneに大きく依存し、Java のような方法で Javascript コードを開発します。つまり、静的メソッドとインスタンス メソッドの両方を使用します。
とらえどころのないのは、実際にはクラスである関数引数 ( newキーワードと一緒に使用されるパラメーター) の注釈を適切に記述する方法です。
require(['foo'], function(Foo) {
var bar = new Foo();
});
次のようにパラメーターに注釈を付けると、 WebStorm および/または Google Closure は、それがFooのインスタンスであると正しく想定します。
require(['foo'],
/** @param {Foo} Foo */
function(Foo) {
Foo.<cursor> <-- gives me an autocompletion for an instance of Foo
});
簡単なグーグル検索では、 function(new: Foo)をパラメーターの説明として使用することをお勧めします。ただし、このアプローチでは、コンストラクターのパラメーターや、クラスが持つ可能性のある静的メソッドのオートコンプリートが失われます。
私が望んでいる構成は、次のようなものです。
require(['foo'],
/** @param {Type<Foo>} Foo */
function(Foo) {
Foo.<cursor> <-- gives me an autocompletion for statics of Foo
});
これを達成する方法はありますか?