Reports using .map().flat() when .flatMap() can be used.
✅ This rule is included in the ts stylistic and stylisticStrict presets.
Array.prototype.flatMap() combines mapping and flattening in a single step.
Using .map().flat() creates an intermediate array that is immediately discarded, which is less efficient.
This rule reports when .map().flat() can be replaced with .flatMap().
The rule only applies when .flat() is called with no arguments or with a depth of 1, since .flatMap() always flattens to a depth of one level.
AEdeclare consB0arr7<2:sp ansty="le--0:#C792EA;--1:#8844">A2:sp>B0numb53[<];d ivclassNa="meec-li">53arrAB0m5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1(sp ansty="le--0:#D7DBE0;--1:#403F">53val1(sp>1<1)sp ansty="le--0:#D6DEEB;--1:#403F">51)sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53 [value, valu=>sp>A5<3 sp ansty="le--0:#F78C6C;--1:#AA09">83 sp><22sp ansty="le--0:#D6DEEB;--1:#403F">5322sp><])sp ansty="le--0:#C792EA;--1:#8844">A])sp>B0fl53(];d><);d ivclassNa="meco"> [value, value * 2]).flat("><);d>);d>);d>AEdeclare consB0strin7<2:sp ansty="le--0:#C792EA;--1:#8844">A2:sp>B0stri53[<];d ivclassNa="meec-li">53strinAB0m5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1(sp ansty="le--0:#D7DBE0;--1:#403F">53val1(sp>1<1)sp ansty="le--0:#D6DEEB;--1:#403F">51)sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53 val=>sp>AB0spl5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1"sp ansty="le--0:#ECC48D;--1:#984E">41"sp>1<1"sp ansty="le--0:#D6DEEB;--1:#403F">531"sp><))sp ansty="le--0:#C792EA;--1:#8844">A))sp>B0fl53(];d><);d ivclassNa="meco"> value.split(",")).flat("><);d>);d>);d>AEdeclare consB0arr7<2:sp ansty="le--0:#C792EA;--1:#8844">A2:sp>B0numb53[<];d ivclassNa="meec-li">53arrAB0m5<3(sp ansty="le--0:#D9F5DD;--1:#1111">13(sp><1(sp ansty="le--0:#D7DBE0;--1:#403F">53val1(sp>1<1)sp ansty="le--0:#D6DEEB;--1:#403F">51)sp><3 sp ansty="le--0:#C792EA;--1:#8844">AE3 sp><=>sp ansty="le--0:#D6DEEB;--1:#403F">53 [value=>sp><])sp ansty="le--0:#C792EA;--1:#8844">A])sp>B0fl5<3(sp ansty="le--0:#F78C6C;--1:#AA09">83(sp><21sp ansty="le--0:#D6DEEB;--1:#403F">5321sp>];d><);d ivclassNa="meco"> [value]).flat(1"><);d>);d>);d> 44AEdeclare co61B0a64<4AE spans="tyle--0:#C5E478;--1:#3B">61B0nu4AE >3F5<3[] ;divclass="Nameec-">3F53a4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0fla4AE.>31<111( spans="tyle--0:#D7DBE0;--1:#40">3F53v111(>1<111) spans="tyle--0:#D6DEEB;--1:#40">3111)>44 spans="tyle--0:#D6DEEB;--1:#40">3F53 [value, va>4<4AE* spans="tyle--0:#D6DEEB;--1:#40">34AE*>0<9822 spans="tyle--0:#D6DEEB;--1:#40">3F59822>3[]><3]) ;divclass="Name"> [value, value * "><2])>2])>3])><;di vdivclass="Nameexpressive-">44AEdeclare co61B0str64<4AE spans="tyle--0:#C5E478;--1:#3B">61B0st4AE >3F5<3[] ;divclass="Nameec-">3F53str4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0fla4AE.>31<111( spans="tyle--0:#D7DBE0;--1:#40">3F53v111(>1<111) spans="tyle--0:#D6DEEB;--1:#40">3111)>44 spans="tyle--0:#D6DEEB;--1:#40">3F53 v>4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B0s4AE.>31<111" spans="tyle--0:#ECC48D;--1:#98">4111">1<111" spans="tyle--0:#D6DEEB;--1:#40">3F5111">3[]><3)) ;divclass="Name"> value.split(","><"))>"))>3))>;di><;di vdivclass="Nameexpressive-">44AEdeclare co61B0a64<4AE spans="tyle--0:#C5E478;--1:#3B">61B0nu4AE >3F5<3[] ;divclass="Nameec-">3F53a4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B4AE.><0map spans="tyle--0:#D6DEEB;--1:#40">30map>1<111( spans="tyle--0:#D7DBE0;--1:#40">3F53v111(>1<111) spans="tyle--0:#D6DEEB;--1:#40">3111)>44 spans="tyle--0:#D6DEEB;--1:#40">3F53 [[valu>4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>30<9822 spans="tyle--0:#D6DEEB;--1:#40">3F9822>3[]><53) ;divclass="Name"> [[value]]).flat"><(2)>(2)>53)>;di><;di vdivclass="Nameexpressive-">44AEdeclare co61B0a64<4AE spans="tyle--0:#C5E478;--1:#3B">61B0nu4AE >3F5<3[] ;divclass="Nameec-">3F53a4<4AE. spans="tyle--0:#82AAFF;--1:#3B">61B04AE.>3F53[]><3() ;divclass="Name">3()>;di>
This rule is not configurable.
If you prefer the explicit two-step approach of .map().flat() for readability, or if your codebase has a large number of existing uses that would be difficult to refactor, you may disable this rule.