с TypeScript
Написал код на TypeScript:
https://www.typescriptlang.org/play?#code/MYGwhgzhAECCvQN4CgCQwD2A7CAXATgK7C4b4AUAlEgL5oDmAprgMoECWW9VSaq+zQvizQARHnyd6ogNxo6dZKEgwAQquiMAHrkZYAJjHi9UTVhy5UAXNAlS5p5m0mWwNrIQC2AI0b5K7l6++A5mzlLkYAD8gT5+AbYW9NAAPtAecfgm-ILC0ACMDgrIIMzQ3tAAvOmMAO7Q6lRyJWUQGJ6M4VxV5QB0YUlNSthtpb0gGNy4AJ4ADowYAGa27Z1JlDJAA
TypeScript говорит что тип string, а в реальности там number. Это я делаю что-то не так, или что?
Ts делает то, что ты написал: соблюдает сигнатуру для перегруженного метода. А вот то, что в реальности там число, отвечает на вопрос "зачем в рантайме информация о типах" и показывает когда от ts может быть вред (ну и в конкретно твоём случае, если я тебя ни в кем не путаю, показывает что в реальности использование ts не гарантирует от ошибок в рантайме) На всякий случай ещё напишу что код нарушает LSP: это нормально для тестового кода, но в проектах такого лучше не допускать
Да, но TS не делает то что я написал. Он мне показывает что там будет string. Не "number | string", а именно "string"
Ты написал что метод без аргументов возвращает стринг. Дальше ты вызываешь метод без аргументов. На этом полномочия ts всё И хотя ts тут не виноват, кейс хороший. Именно демонстрацией бесполезности ts
вы на реальных проектах когда либо перегружали функции TS?
Ну да, чем больше опыта, тем охотней соглашаюсь что TS не решает проблему. Но как жить без подсказок, особенно объектов у которых большая вложенность?
На ts нет, на других языках да В том числе потому что перегрузка методов на ts это костыль с чудовищным синтаксисом
я могу у вас роадмап получить по изучению бэка на ноде?
Внесу свою лепту в этот холивар) TS использую только для подсказок и описи)
У меня его нет, а на такой вопрос обычно скидывают roadmap.sh/backend
аа, спасибо а вы не нодером рабоатете?
в настоящий момент нода это основная платформа, для которой я пишу код
какой фреймворк вы юзаете?
Не один. Самые приятные эмоции у меня вызывает moleculer, самые неприятные nest
аа, на чистой ноде
Обсуждают сегодня