Я написал функцию, которая должна поддерживать два типа names
параметров для списка значений. Внутренне это имеет дело с параметром как массив.
Одно имя задается в виде строки, а кратные имена - в виде массива строк.
// simplified example
let doSome = names => names.map(name => name.toUpperCase())
names(['Bart', 'Lisa'])
// [ 'BART', 'LISA' ]
names('Homer')
// TypeError: names.map is not a function
Я нашел решение, используя Array.of()
в сочетании с flatten()
который нуждается в некоторой конфигурации babel.
doSome = names => Array.of(names).flatten().map(name => name.toUpperCase());
Есть ли в JavaScript идиоматический способ получить массив без проверки типа?