03326
BEM
type BEM<B extends string, E extends string[], M extends string[]> =
 E['length'] extends 0
   ? M['length'] extends 0
     ? `${B}`
     :`${B}--${M[number]}`
 : M['length'] extends 0
   ? `${B}__${E[number]}`
   : `${B}__${E[number]}--${M[number]}`;