重症度レベル:警告
デフォルト状態:常に有効
Description
このルールは、スクリプト、スクリプトブロック、関数スコープで宣言されているが使用されていないパラメータを検出します。 未使用パラメータを削除することで、コードの明確さを高め、関数の依存関係に関する混乱を減らすことも検討すべきです。
例
非準拠
function Test-Parameter
{
Param (
$Parameter1,
# This parameter is never called in the function
$Parameter2
)
Get-Something $Parameter1
}
対応
function Test-Parameter
{
Param (
$Parameter1,
# Now this parameter is being called in the same scope
$Parameter2
)
Get-Something $Parameter1 $Parameter2
}
ルールの設定
デフォルトでは、このルールは Where-Object または ForEach-Objectに提供されたスクリプトブロック以外の子スコープは考慮しません。
CommandsToTraverse設定は文字列配列で、スクリプトブロックを受け入れる追加コマンドを追加できます。
@{
Rules = @{
PSReviewUnusedParameter = @{
CommandsToTraverse = @(
'Invoke-PSFProtectedCommand'
)
}
}
}
このルールは設定可能ですが、常に有効にしています。 このルールを避けるために、以下のいずれかの方法を用いてください。
- 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
- 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。