single-or-array-pattern
Funkcje, które obsługują zarówno pojedyncze elementy, jak i tablice — jeden kod dla obu przypadków
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Wzorzec projektowy do tworzenia funkcji, które elastycznie przyjmują pojedynczy element lub tablicę elementów. Idealne do operacji CRUD, API przetwarzania wsadowego i funkcji fabrycznych. Normalizujesz dane na wejściu, a cała logika pracuje na tablicy — eliminujesz duplikację kodu i upraszczasz obsługę obu scenariuszy bez rozgałęzień warunkowych.
Jak używać
Zdefiniuj parametr funkcji z typem unii:
T | T[], gdzie T to typ pojedynczego elementu (np.Client | Client[]).Na początku funkcji normalizuj wejście do tablicy za pomocą
Array.isArray()— jeśli otrzymasz pojedynczy element, zawiń go w tablicę:const items = Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems].Napisz całą logikę biznesową pracując tylko na zmiennej
items(tablicy) — iteruj pętląfor...oflubmap()i wykonaj operacje na każdym elemencie.Nazwij parametr wejściowy zgodnie z konwencją:
itemOrItems,clientOrClients,recordingOrRecordings— znormalizowaną zmienną nazwij formą liczby mnogiej (items,clients,recordings).Zastosuj wzorzec w operacjach CRUD (create, update, delete), funkcjach fabrycznych lub API, które powinny obsługiwać zarówno pojedyncze żądania, jak i przetwarzanie wsadowe.
Unikaj tego wzorca, jeśli semantyka operacji na jednym elemencie różni się znacząco od operacji na tablicy, lub jeśli typ zwracany powinien być inny dla obu przypadków.
Podobne skille
better-auth-best-practices
autor: novuhq
ui-audit
autor: openclaw
architect-review
autor: sickn33
llama-cpp
autor: zechenzhangAGI
software-security
autor: project-codeguard
security-compliance
autor: davila7