А вы не задумывались - что вернёт getType, если передать ей значение
19
, или
true
, или
'!!!!!'
, или... у вас же в операторе switch отсутствует ветка default - и вы ещё спрашиваете, откуда берётся undefined.
Сам код конечно просто ужасен.
case 1:
return outtype = 'a';
break;
Бесполезное присваивание - раз. Бесполезный break - два. Слишком многословно (если брать функцию в целом) для решения столь примитивной задачи - три. Можно же переписать как-нибудь так:
const getType = (type) => ({
1: 'a',
2: 's',
3: 'f',
})[parseInt(type, 10)] || /* а здесь должно быть дефолтное значение */