簡體   English   中英

SonarQube Javascript刪除未使用的函數參數XYZ

[英]SonarQube Javascript Remove the unused function parameter XYZ

在分析我的項目時,我會得到很多類型的誤報

刪除未使用的功能參數XYZ

對於父類具有帶參數的方法但子類不需要任何方法的情況,但在運行時我不知道也不希望知道對象是什么實例,因此我想傳遞參數,即使它由於方法簽名而被忽略

有沒有機會從聲納報告中排除此類情況?

class EdgeFinder{
    getNewEdgeMapEntry(face){} // it's bascially an abstract class to speak in Java terms and subclasses implement variations of some methods which the parent class defined but does not implement

...
}

class SingularEdgeFinder extends EdgeFinder{
   getNewEdgeMapEntry(face){
      return 1;
   }
   ...
}

class DifferentNormalsEdgeFinder extends EdgeFinder{
   getNewEdgeMapEntry(face){
      return [face.normal];
   }
   ...
}

而且我在代碼中的某一時刻創建了edgeHelper的任何類的實例,后來我執行這些方法,所以我當時不知道是什么-或至少我不想再關心-我知道這是我所關心的EdgeHelper的子類。

使用JavaScript類時,繼承類的方法不需要與父類的方法具有相同數量的參數。 它的工作方式與您從Java熟悉的方式不同,沒有方法重載或類似方法。

換句話說,如果您不使用參數,則完全可以省略該參數,因此您的代碼示例可以並且應該這樣編寫:

class EdgeFinder{
    getNewEdgeMapEntry() {}
}

class SingularEdgeFinder extends EdgeFinder{
    getNewEdgeMapEntry() {
        return 1;
   }
}

class DifferentNormalsEdgeFinder extends EdgeFinder{
    getNewEdgeMapEntry(face) {
        return [face.normal];
    }
}

“抽象”基類不必在其簽名中定義任何參數,這是Java編程中JavaScript中不存在的概念。 實際上,如果根本不直接使用基類,則定義它甚至沒有意義:

class EdgeFinder {}

暫無
暫無

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

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