Укажите параметр типа: const numericSet = new Set(). Тогда TypeScript разрешит add с числами и отклонит строковые аргументы.
Ограничить тип Set только числами
Укажите параметр типа: const numericSet = new Set<number>(). Тогда TypeScript разрешит add с числами и отклонит строковые аргументы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Типизировать Set так, чтобы он мог хранить исключительно числовые значения.
const numericSet = new Set()
Ответ
Укажите параметр типа: const numericSet = new Set(). Тогда TypeScript разрешит add с числами и отклонит строковые аргументы.
const numericSet = new Set<number>();
numericSet.add(1);
numericSet.add(2);
// numericSet.add('3'); // ошибка типов
Тип проверяется компилятором и не устанавливает runtime-защиту для входа из JavaScript или any. Для внешних данных отдельно проверяйте typeof и при необходимости Number.isFinite. Тип number допускает NaN и Infinity; если нужны только конечные или целые значения, одного Set недостаточно.