CoffeeScriptで書かれたコードがあり、生成されたJavaScriptをGoogle Closure Compilerで最適化したいので、これらのファイルはJSDocで文書化する必要があります。
私の質問は、どのように* .coffeeファイルを文書化して、クロージャーコンパイラー用の動作するJSDocを含むjavascriptを生成することができるでしょうか?
もう1つの質問:1行のコメントを* .coffeeに保持する方法はありますか?
これはお勧めしません。すべてのコードをJSDoc処理するのは面倒なプロセスであり、Closure Compilerのメリットはほとんどないか、まったくありません。 Google以外では、だれもこれを行うことはほとんどありません。 CoffeeScripters/JavaScriptersは一般に docco のような軽量のドキュメントツールを好みます。
また、Closure Compilerの背後にはGoogleのブランド名がありますが、多くの場合、 glifyJS がより効率的な縮小ツールであることが証明されています。 (jQuery 最近切り替わった それに。)
もう1つの質問:1行のコメントを* .coffeeに保持する方法はありますか?
はい:
### foo ###
または
`// foo`
### define function variable before block to avoid code being appended to closing part of JSDoc comment ###
cube = null
###*
* Function to calculate cube of input
* @param {number} Number to operate on
* @return {number} Cube of input
###
cube = (x) -> x*x*x
coffee -cpb src.coffee
// Generated by CoffeeScript 1.6.3
/* define function variable before block to avoid code being appended to closing part of JSDoc comment*/
var cube;
cube = null;
/**
* Function to calculate cube of input
* @param {number} Number to operate on
* @return {number} Cube of input
*/
cube = function(x) {
return x * x * x;
};
その他の回答 で詳しく説明されているように、CoffeeScript 1.7.1にはこの問題を解決するためのより良い方法があります。
上記のBillyに直接応答することはできないため、CoffeeScript 1.7.1の方がこれをサポートしているようです。
###*
# Sets the language and redraws the UI.
# @param {object} data Object with `language` property
# @param {string} data.language Language code
###
handleLanguageSet: (data) ->
出力
/**
* Sets the language and redraws the UI.
* @param {object} data Object with `language` property
* @param {string} data.language Language code
*/
handleLanguageSet: function(data) {}
いろいろ試してみる必要がありますが、###
コメントはあなたの友達です。
Coffee-scriptコンパイラーは、###
形式(docs here )を使用するコメントを保持します。
私はサイトで「コーヒースクリプトを試す」機能を使用して、関数の本当にシンプルなJsDoc
フラグメントを作成しようとしました:
###* Doc for this function.###
foo = -> 'bar'
これは与えました:
/** Doc for this function.
*/
var foo;
foo = function() {
return 'bar';
};
私はJsDoc
の専門家ではありませんが、関数の上にあるvar foo;
ステートメントが問題を引き起こすと思います。以前にfoo
を宣言したことがある場合は、maybee ..
それがどうなるか聞いてよかったです。
class
に問題があります
###* this is a class ###
class hello
v: 4
それを与える
// Generated by CoffeeScript 2.0.0-beta5
/** this is a class */
var hello;
hello = (function() {
class hello {};
hello.prototype.v = 4;
return hello;
})();
そしてそれはJSDocでは無効です