Alexandroppolus
1) TypeScript сейчас не выполняет проверку типов для целочисленных индексов. Проверка по длине работает для tuple-ов, например если у вас есть переменная типа [Item] | [Item, Item], то при проверке на length TypeScript сузит вам тип до [Item] или [Item, Item]
2) То что вы хотите - смена типа переменной в результате смены состояния объекта - в TS нет и врядли будет в ближайшее время. Проверять такое очень сложно на этапе компиляции. Сейчас в TS есть control flow typing в виде сужения типа переменной в ветвях условий при использовании встроенных или пользовательских type guards.
el-bekasto а что вам средний пользователь? В смысле, что вы собираетесь делать этим счётчиком?
Если вам нужен счётчик запросов - то пожалуйста, он у вас есть, браузер действительно выполняет ДВА запроса. Если вам нужен счётчик "открытых страниц" - ну замечательно, смотрите по какому урлу запрос или в какой контроллер он полетит, и считайте.
Ваш пример кода выглядит как эксперимент для понимания происходящего, что мы вам, вроде как, объяснили, а если это что-то из бизнес-требований, ну задавайте тогда вопрос нормально.
el-bekasto Если не хотите, чтобы особенности браузера вам мешали - делайте отладочные запросы из специализированного софта, вроде Postman или Insomnia.
> По трем пришел отказ в течение нескольких дней
Аргументация какая-то была? 3 отказа это довольно много, проработать бы их. Попробуйте написать сами HR-ам и уточнить, что нужно подтянуть.
> Очень сильно устал за этот год - днем работаю, а вечером учу выбранный стек.
Вы не поверите - я тоже днём работаю на одном стеке, а вечером читаю про другой, чтобы его не забыть)) Но это попроще, чем вам.
> иначе бы знали что есть реляционные БД, которые могут эмулировать графовые, которые в свою очередь безсхемные
И теперь ответьте мне - безсхемные они потому что графовые или потому что реляционные?
Не говоря уже о том, что вы путаете понятия БД и СУБД, что сильно разные вещи, особенно когда мы говорим о том, какие модели данных поддерживаются. Замечу, что про СУБД вы ничего не писали в своём вопросе.
Что такое Base и Element? Зачем созданы эти классы? Какая изначальная задача/предметная область моделируется?
Мы не сможем ответить на ваши вопросы, пока не поймём, что вы моделируете.
Потому что имя пользователя на Тостере не совпадает с именем локального пользователя в вашей системе.
А теперь серьёзно: что значит не запускается? Какую ошибку вы видите? Где вы пытаетесь запускать - на своей машине или на какой-то другой? Какой дотнет используется?
Владимир Лучше не давать человеку такой совет, не объясняя когда этого уже НЕЛЬЗЯ сделать (например, когда его бранч стал коллективным - начал использоваться другими, начал проходить ревью и т.д.).
1) TypeScript сейчас не выполняет проверку типов для целочисленных индексов. Проверка по длине работает для tuple-ов, например если у вас есть переменная типа [Item] | [Item, Item], то при проверке на length TypeScript сузит вам тип до [Item] или [Item, Item]
2) То что вы хотите - смена типа переменной в результате смены состояния объекта - в TS нет и врядли будет в ближайшее время. Проверять такое очень сложно на этапе компиляции. Сейчас в TS есть control flow typing в виде сужения типа переменной в ветвях условий при использовании встроенных или пользовательских type guards.