@yurypanyukov

Строгая типизация возвращаемых значений функцией?

Часто сталкиваюсь со случаями, когда функция возвращает разные типы значений. То есть одна функция может вернуть string или undefined/null, другая array или undefined/null.

Разные типы данных:
const getModifier (baseClass, ...modifiers) => {
	if (!modifiers.length) return;

	return modifiers.map(m => `${baseClass}--${m}`).join(' ');
};

Одинаковые типы данных:
const getModifier (baseClass, ...modifiers) => {
	if (!modifiers.length) return '';

	return modifiers.map(m => `${baseClass}--${m}`).join(' ');
};


Кроме случая с object и null (хотя к этому тоже есть вопросы :) ) как вы считаете должна ли функция в JS возвращать один тип данных?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
@stratosmi
Это холивар на тему "языки со статической типизацией vs языки с динамической типизацией"
Каждая сторона может привести кучу значимых аргументов в свою пользу.

Если проект очень сложный/очень ответственный - все должно быть строго, иначе нахлебаетесь.
Для простых - лучше гибче, без лишней строгости. Разработка будет быстрее, дешевле.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RidgeA
должна ли функция в JS возвращать один тип данных?

да

1. Это прозрачно, понятно и предсказуемо.
2. Это может в некоторой степени улучшить производительность.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы