Skip to content

arrayTernarySpreadingConsistency

Reports inconsistent types when spreading a ternary in an array literal.

✅ This rule is included in the ts stylistic and stylisticStrict presets.

When spreading a ternary expression in an array literal, prefer using consistent types for both branches. Mixing arrays with empty strings as fallbacks reduces code clarity.

AEconsB0conditiAE <= sp ansty="le--0:#FF6A83;--1:#A248">48tr5<3;d ivclassNa="meec-li">AEconsB0resuAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#F78C6C;--1:#AA09">8<21sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#7FDBCA;--1:#096E">72.<..sp ansty="le--0:#D6DEEB;--1:#403F">53(conditioA53< [sp ansty="le--0:#F78C6C;--1:#AA09">8<22sp ansty="le--0:#D6DEEB;--1:#403F">53<, sp ansty="le--0:#F78C6C;--1:#AA09">8<23sp ansty="le--0:#D6DEEB;--1:#403F">53<] sp ansty="le--0:#C792EA;--1:#8844">A5<3 sp ansty="le--0:#D9F5DD;--1:#1111">11<""sp ansty="le--0:#D6DEEB;--1:#403F">53)<];d ivclassNa="meco"><];d>AEconsB0flAE <= sp ansty="le--0:#FF6A83;--1:#A248">48fal5<3;d ivclassNa="meec-li">AEconsB0iteAE< =sp ansty="le--0:#D6DEEB;--1:#403F">53< [sp ansty="le--0:#7FDBCA;--1:#096E">72.<..sp ansty="le--0:#D6DEEB;--1:#403F">53(flaA5<3 sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#ECC48D;--1:#984E">4Da1<1"sp ansty="le--0:#D6DEEB;--1:#403F">5<3 sp ansty="le--0:#C792EA;--1:#8844">A53 [])<];d ivclassNa="meco"><];d>
44AEco61B0condi44A4848344AEco61B0re443F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9821 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#7FDBCA;--1:#09">6E7<2... spans="tyle--0:#D6DEEB;--1:#40">3F53(condit4<4AE? spans="tyle--0:#D6DEEB;--1:#40">3F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9822 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#F78C6C;--1:#AA">0<9823 spans="tyle--0:#D6DEEB;--1:#40">3F<53] spans="tyle--0:#C792EA;--1:#88">4<4AE: spans="tyle--0:#D6DEEB;--1:#40">3F53 [<])] ;divclass="Name"><])]><;di vdivclass="Nameexpressive-">44AEco61B044A4848f344AEco61B0i443F<53 [ spans="tyle--0:#7FDBCA;--1:#09">6E7<2... spans="tyle--0:#D6DEEB;--1:#40">3F53(f4<4AE? spans="tyle--0:#D6DEEB;--1:#40">31<111" spans="tyle--0:#ECC48D;--1:#98">4E41<111" spans="tyle--0:#D6DEEB;--1:#40">34<4AE: spans="tyle--0:#D6DEEB;--1:#40">311<11"" spans="tyle--0:#D6DEEB;--1:#40">3F5<3)] ;divclass="Name"><")]><;di vdivclass="Nameexpressive-">44AEco61B0v44A4848344AEco61B0a443F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9820 spans="tyle--0:#D6DEEB;--1:#40">3F<53, spans="tyle--0:#7FDBCA;--1:#09">6E7<2... spans="tyle--0:#D6DEEB;--1:#40">3F53(va4<4AE? spans="tyle--0:#D6DEEB;--1:#40">3F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9821 spans="tyle--0:#D6DEEB;--1:#40">3F<53] spans="tyle--0:#C792EA;--1:#88">4<4AE: spans="tyle--0:#D6DEEB;--1:#40">3F<53 [ spans="tyle--0:#F78C6C;--1:#AA">0<9822 spans="tyle--0:#D6DEEB;--1:#40">3F53<])] ;divclass="Name"><])]>

This rule is not configurable.

If you intentionally use mixed types in ternary spreads for specific edge cases, or if your codebase has established patterns that mix array and string types, you may want to disable this rule.