19

Google Closure Compiler が型チェックを行うことは知っていますが、ライブラリやオプティマイザと密接に結合されていない代替手段はありますか?

そうでない場合、Google Closure Compilerに静的解析のみを実行させる方法はありますか?

(ここでの静的分析とは、引数の型を定義するなどのことを意味し、タイプミスをしたり間違った型を渡したりした場合に警告を表示するために何かを実行できます。)

4

3 に答える 3

2

主に (少なくとも私が理解しているように) JS の型チェックを行う Mozilla プロジェクトであるDoctor JSがあります。

于 2011-07-13T00:03:11.240 に答える
0

Microsoft の AJAX Minifier は、JS ファイルから有用な結果を得るために必要な準備の量について、もう少し緩和されています。デフォルトで実行すると、外部コードでも機能する高度に縮小されたファイルを取得できます: http://ajaxmin.codeplex.com/

しかし、Closure Compiler と Ajax Minifier はどちらも、Javascript の設計方法により、基本的な linting を超えた非常に限られた静的分析しか実行できません。宣言されていないプロパティへのアクセスは、未定義のチェックだけである可能性があり、宣言されていない変数を割り当てることは、グローバルスコープで宣言することを意味し、数値を含む変数にオブジェクトを割り当てることは合法であるなどです。 (Java、C#) は範囲外と見なされるため、特定のコンパイラの型、境界、および期待を宣言しないと、残念ながら防止できるエラーが制限されます。

ビッグ 2 (MS と Google) の間で変換できるものにもう少し興味があります。IDE のサポート、高度な最適化によるコード サイズのテストなどに役立ちます。

于 2011-10-19T21:34:43.883 に答える
0

私は、jsdoc を解析し、独自の静的分析を行って、潜在的または実際のタイプ セーフ エラーにフラグを立てる intellij idea / webstorms エディターに非常に満足しています。いくつかの一般的なフレームワークで継承を機能させるには少し作業が必要でしたが、これは非常に有用であることが証明されています。JavaScript プロトタイプの継承で可能なアプローチは山ほどあるため、コンパイラーは他の言語よりも少し多くの助けを必要とします。

これは商用ツールですが、かなりまともな静的分析とリファクタリング ヘルパーを使用して、Java、php、JavaScript、Python、および Ruby プロジェクトに使用できます。以前は emacs で多くのことを行い、jshint とクロージャー コンパイラーのために node.js プロセスを実行していましたが、これはそれほど脆弱ではありません。

于 2012-01-14T01:20:14.520 に答える