Да, только тут Т лучше заинлайнить в Dumpable
Что имеете в виду под "заинлайнить" (сорри, я новичок в ТС) и чем этот вариант лучше?
Заменить использования Т на то что он extends тем самым избавиться от дженерика
Потомучто типо-параметр в честном дженерике должен встречаться минимум 2 раза, один при объявлении и остальные при использовании
И чем же она полезная? Любой хардкодинг типов - следствие непонимания базовых концепций. Хардкодинг может иметь смысла, когда что-то нельзя/не получается. Только вот это просто костыль для обхода проблем и применяется только тогда, когда нужен. Уж тем более не по умолчанию и уж тем более оно не полезно ни в каком виде
В примере что мы обсуждаем Т входит 2 раза явно и один неявно, что подпадает под принцип который я пересказал
Чего явно/не явно? Какой принцип? Принцип "я не знал" - это не принцип. Это попытка выдавать невежество за какие-то принципы. Есть ситуация, где тип может быть выведен/подставлен. Даже если в каком-то случае это не работает - это проблема языка. И это не значит, что нужно от этого отказываться в остальных случаях, а далее придумывать оправдания этому отказу
Нашёл годный спор. Будет что почитать с утра. Как перестать хардкодить типы? Прочитать может что? Я прочитал "TypeScript быстро", но этого кажется мало
Хардкодинг типов - это активное использование as ?
Хардкодинг типов - это любая вставка типов куда-либо где это не требуется.
А вот это хардкодинг куда попадает: function doSomething(t: Type): string { } а потом дальше идет (пусть там будет сложный маппинг и не хочется увеличивать вложенность): const t: Type = { .... } doSomething(t)
Вот здесь, :string - это мусор всегда. const t: Type - это так же мусор всегда, но здесь есть нюансы. Т.к. наш язык не может вывести тип для t из doSomething(t) и если мы хотим получить какой-то асист в создании объекта по месту, то использование имеет смысла. Именно как починка недоработки языка.
давай ты не будешь больше поднимать старые треды где был срач чтоб этот срач опять не поднимать?
Обсуждают сегодня