[英]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.