2011-07-07 13 views
0

JSを開発するときに役立つ追加情報を格納するヘルパー名前空間があります。今私はそれらをより良く文書化し、JsDocでJSを強化し、Google Closureコンパイラの助けを借りて計画します。私は今日2PMの時点で最新のバージョンを持っています。 - 私のような三項演算子を使用するにはどうすればよいGoogleクローズコンパイラw/ternaries:ERROR - 一貫性のない戻り値の型

私は「一貫性のない戻り値の型ERROR」コンパイラエラーを取得し、両方のリターンライン上だから、

var my.company.tool = { 
    "isNumber": function(p_value) 
    { 
      return (typeof(p_value) == "number") ? true : false; 
    }, 
    /** 
    * @static 
    * @returns {Boolean} Indicative of an object. 
    */ 
    "isObject": function(p_value) 
    { 
      return (typeof(p_value) == "object") ? true : false; 
    } 
} 

:次のコードでコンパイラを実行している場合しかし、私はとエラーが出これはGoogleのクロージャコンパイラでですか?はい、私はグーグルではありますが、私は無関係の検索結果を得続けます。今の私は、三元を削除しますが、それはエラーなしでそれらを使用することを好む:

「トマシュNurkiewicz」によって提案されたように、私は私の文を更新し、私はまだエラーを取得しています: 変更コードに行われた:

var my.company.tool = { 
    "isNumber": function(p_value) 
    { 
      return typeof(p_value) == "number"; 
    }, 
    /** 
    * @static 
    * @returns {Boolean} Indicative of an object. 
    */ 
    "isObject": function(p_value) 
    { 
      return typeof(p_value) == "object"; 
    } 
} 

コンパイラ出力:

[pakeException] 
    js/core/IHR.js:68: ERROR - inconsistent return type 
    found : boolean 
    required: (Boolean|null) 
      return typeof(p_value) == "number"; 
            ^

    js/core/IHR.js:76: ERROR - inconsistent return type 
    found : boolean 
    required: (Boolean|null) 
      return (typeof(p_value) == "object"); 
            ^

    2 error(s), 0 warning(s), 99.0% typed 

私はタイプを設定しようとしても、{ブール|ヌル}私はまだエラーが発生します。何がありますか?

答えて

4

を、よりクリーンで読み取り可能なコードを持っています。

+0

はい!それだった!どうもありがとう。このようなことについてはどこで読むことができますか、またコンパイラがサポートするすべてのタイプのリファレンスですか? – b01

2

これは役に立ちますか?また、あなたは{Boolean}ラッパー{Boolean}タイプを指し、一方、{boolean}がプリミティブboolean型を参照するので、あなたが{boolean}の代わり{Boolean}として、あなたの戻り値の型を宣言する必要があります...

var my.company.tool = { 
    "isNumber": function(p_value) 
    { 
      return typeof(p_value) == "number"; 
    }, 
    "isObject": function(p_value) 
    { 
      return typeof(p_value) == "object"; 
    } 
} 
+0

私は好きですが、明日は仕事に就くことができます。うわー、あまりにも明白でした。 – b01

+0

いいえいいえ、コードはよりクリーンでシンプルですが、まだエラーが発生します。 – b01

関連する問題