Запись интерфейсов для доменных классов может иметь смысл при использовании его для поблочного тестирования. Мы используем Фиктивные объекты в поблочном тестировании. Так, если у Вас есть интерфейс для объекта области, и Ваш объект области сам не готов, но Ваш клиент может протестировать его использование интерфейса справкой фиктивных объектов.
Intefaces также тестируют несколько реализаций Ваших интерфейсов для Вашей модели предметной области. Так, я не думаю, что это всегда - излишество.
Это не лучшее решение, хотя я просто фиксирую ошибку и отправляю дату противотока. Я лично испытываю желание не решать проблемы Safari, если пользователи хотят использовать sh*t нестандарты совместимый браузер - они должны жить с причудами.
function safeDate(dateString = "") {
let date = new Date();
try {
if (Date.parse(dateString)) {
date = new Date(Date.parse(dateString))
}
} catch (error) {
// do nothing.
}
return date;
}
я предложил бы иметь Ваш бэкенд, отправляют даты ISO.