Linter szabály – a biztonságos hozzáférés operátorának használata
Ez a szabály a függvény használatát keresi a contains()
tulajdonság meglétének hozzáférés előtti ellenőrzéséhez, és egyszerűbb automatikus cserét biztosít. Arra szolgál, hogy a felhasználókat egy egyszerűsített egyenértékű szintaxisra javasolja és vezesse be anélkül, hogy funkcionális kódmódosításokat vezet be. További információ: Biztonságos hareferencia-operátor.
A keresett minták a következők:
Ternáris operátor a tulajdonsághozzáférés ellenőrzéséhez:
contains(<object>, '<property>') ? <object>.<property> : <default-value>
A következő csere javasolt:
<object>.?<property> ?? <default-value>
Változónevű tulajdonsághozzáférés ellenőrzésére szolgáló ternáris operátor:
contains(<object>, <property-name>) ? foo[<property-name>] : <default-value>
A következő csere javasolt:
<object>[?<property-name>] ?? <default-value>
Linter-szabály kódja
A szabálybeállítások testreszabásához használja az alábbi értéket a Bicep konfigurációs fájljában:
use-safe-access
Megoldás
Fogadja el a szerkesztő kódműveletét az újrabontás automatikus végrehajtásához.
Példák
Névvel ellátott tulajdonsághozzáférés
A következő példa aktiválja a szabályt:
param foo object
var test = contains(foo, 'bar') ? foo.bar : 'baz'
A kódművelet elfogadása a következő Bicep-et eredményezi:
param foo object
var test = foo.?bar ?? 'baz'
Változótulajdonság-hozzáférés
A következő példa aktiválja a szabályt:
param foo object
param target string
var test = contains(foo, target) ? foo[target] : 'baz'
A kódművelet elfogadása a következő Bicep-et eredményezi:
param foo object
param target string
var test = foo[?target] ?? 'baz'
Nem problémák
A következő példák nem aktiválják a szabályt:
Különbség az ellenőrzött és a hozzáférés alatt álló tulajdonság között:
param foo object
var test = contains(foo, 'bar') ? foo.baz : 'baz'
Különbség az ellenőrzött és a hozzáférés alatt álló változótulajdonság között:
param foo object
param target string
param notTarget string
var test = contains(foo, target) ? bar[notTarget] : 'baz'
Következő lépések
A linterről további információt a Bicep-linter használata című témakörben talál.