2017-04-03 34 views
0

JSDoc註釋是否足以測試參數的有效性?Closure Compiler JsDoc註釋替換源代碼中的測試?

例如:在下面的「add」方法中,參數(Point對象)定義爲非空值點類型。在此方法中,用關閉編譯器,可以予然後跳到測試此參數的值所需的代碼:

  1. if (!point) {...
  2. if (!(point instanceof Point)) {...

由於

class Point{ 
    /** 
    * Add x/y values to the Point object 
    * 
    * @param {!Point} point The x/y values to add. 
    * 
    */ 
    add(point) { 
    this.x += point.x; 
    this.y += point.y; 
    } 
} 

回答

0

是,前提是正在編譯調用該方法的任何代碼。

如果您有調用未編譯該方法的代碼,則編譯器無法保證傳遞的類型。例如,如果你讓一個庫被非編譯代碼調用。在這種情況下,您可能會導出add方法,以使外部非編譯代碼可以訪問 。

如果您未導出add方法,則只有編譯後的代碼才能訪問它。

請參閱第408頁的Checks Provided by the Compiler部分,Michael Bolin的Closure The Definitive Guide。您需要爲編譯器指定某些標誌,例如:

--jscomp_error=checkTypes 
--warning_level=VERBOSE 
相關問題