Maybe these are nice minor adjustments:
const joinByDelimiterButKeepAsArray = <T, D>(arr: T[], delimiter: D): (T | D)[] => { return arr.flatMap((item, i) => i == 0 ? item : [delimiter, item]) }