Flow complexity (ARCH3206)
Anahtar typescript.quality.flow-complexity · Önem warning · Kategori quality
Dalları ve döngüleri, okuyanın aynı anda birkaç koşulu akılda tutmasını gerektirecek kadar iç içe geçmiş fonksiyonu işaretler. Her if, döngü, catch, switch ve üçlü ifade bir artı iç içe olduğu seviye sayısı kadar puan alır; else ve else-if bir; aynı &&, || ya da ?? dizisi bir; kendini çağıran fonksiyon bir puan alır; anonim callback’ler içerdiklerini bir seviye derinleştirir. Adı olan iç fonksiyon (bileşenin handler’ı, hook callback’i) ayrı ölçülür, JSX işaretlemesindeki bir koşul düz bir puan alır. 15’in üstü raporlanır.
Yanlış
Bölüm başlığı “Yanlış”export function ship(orders: Order[], retry: boolean) { for (const order of orders) { if (order.paid) { for (const line of order.lines) { if (line.stock > 0 && line.active) { try { send(line); } catch { if (retry) queue(line); else fail(line); } } } } }}export function ship(orders: Order[], retry: boolean) { for (const order of orders.filter(o => o.paid)) shipLines(order, retry);}
function shipLines(order: Order, retry: boolean) { for (const line of order.lines.filter(isShippable)) trySend(line, retry);}