UseCompatibleSyntax

Poziom nasilenia: Błąd

Domyślny stan: Wyłączony

Description

Ta reguła wykrywa elementy składni, które nie są kompatybilne z wybranymi docelowymi wersjami PowerShell. Gdy uruchamiasz tę regułę z PowerShell 3 lub 4, nie wykrywa składni niekompatybilnej z tymi wersjami, ponieważ te wersje nie potrafią analizować nowszych konstrukcji składniowych.

Example

Niezgodne

Poniższy przykład wykorzystuje składnię PowerShell 7. Jeśli TargetVersions zawiera 5.1 lub wcześniej, ta zasada oznacza te stwierdzenia.

$message = $IsReady ? 'Ready' : 'Not ready'
$displayName = $name ?? 'Unknown'

Zgodne

if ($IsReady) {
    $message = 'Ready'
} else {
    $message = 'Not ready'
}

if ($name -ne $null) {
    $displayName = $name
} else {
    $displayName = 'Unknown'
}

Konfiguruj regułę

@{
    Rules = @{
        PSUseCompatibleSyntax = @{
            Enable = $true
            TargetVersions = @(
                '6.0',
                '5.1',
                '4.0'
            )
        }
    }
}

Parameters

Enable

Ten parametr decyduje, czy ScriptAnalyzer sprawdza kod względem tej reguły. Akceptuje wartość boolowską. Aby włączyć tę regułę, ustaw ten parametr na .$true Wartość domyślna to $false.

TargetVersions

Ten parametr określa wersje PowerShell, z którymi Twój kod musi być kompatybilny. Akceptuje tablicę ciągów wersji, takich jak '7.0', '5.1', lub '4.0'. ScriptAnalyzer oznacza składnię, która nie jest wspierana w żadnej docelowej wersji.