簡體   English   中英

使用Closure Compiler JsDoc注釋替換源代碼中的測試?

[英]Closure Compiler JsDoc annotations to replace tests in source code?

JSDoc注釋是否足以測試參數的有效性?

示例:在以下“添加”方法中,參數(點對象)被定義為非空點類型。 然后,在這種方法中並使用Closure Compiler,我可以跳過測試該參數值所需的代碼:

  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;
  }
}

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

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

如果不導出add方法,則只有編譯后的代碼可以訪問它。

請參閱《 封閉式 Michael Bolin 權威指南》中第408頁的“ 由編譯器提供的檢查 ”部分。 您需要為編譯器指定某些標志,例如:

--jscomp_error=checkTypes
--warning_level=VERBOSE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM