енамы есть в рантайме
А он должен?
декораторы тоже есть в рантайме..
оххх, к этому и подводка была...
Не декораторы, а сгенерированный ими жс Разные вещи
байткод тоже компилятором генерится, чеж теперь байткод писать?
это сути не меняет. Енамы - это тоже сгенерированная в джс структура
По-моему как раз меняет суть
если речь о декораторах джаваскриптовых, которые готовят в какой-то там следующей версии EcmaScript, то да. Это совершенно разные вещи. Но по факту декораторы в тайпскрипте подходят под определение паттерн декоратор
Подходят, но мы же вроде не об этом говорили. А о том, что в рантайме тс нет
исходя из такой логики, можно сказать, что и джаваскрипта в рантайме нет. Есть только байткод
Которого тоже нет, потому что всё это команды процессора, которых тоже нет, потому что всё это сводится к движению электронов. Уже много раз видел это доведение до абсурда Но смысл в том, что тс растворяется и превращается в жс. Который имеет спецификацию, и для исполнения которого и создан v8. Поэтому на определённом уровне абстракции можно говорить о том, что исполняется у нас всё же код на жс А у тс ни спецификации, ни рантайма нет
В любом случае, декораторы и енамы - это сгенерированные тайпскриптом штуки. Да, сгенерированные в джс, но все же, описанные в тайпскрипте. И генерироваться без тайпскрипта они не будут. По такой логике, можно утверждать, что тайпскрипт - это не язык. Существует достаточно языков, которые генерируются в другие языки. Например, дарт
А ты с чем воюешь то?
с формулировкой, что тайпскрипта в рантайме нет
Так его нет. Есть жс код, который сгенерирован транспилятором. А от тс в рантайме ничего не остаётся. И все гарантии, которые он криво-косо, но даёт в compile time, исчезают в runtime
Заставит тебя мыслить по-другому.
enum-ы же вроде остаются, нет?
Читал всю дискуссию, но так и не понял смысла спора, т.к. я думал что тс нужен для того что бы на стадии написания сократить кол-во багов и улучшить читаемость кода...
Что значит ок? Я правильно понял цель тайпскрипта, или нет? :))
ТС нужен для: 1. Документация своего кода, чтобы понимать что к чему и куда 2. Тем самым упрощать онбординг новых разработчиков 3. Тулинг в IDE (автокомплиты, подсказки и все такое) Сократить кол-во багов - очень вряд-ли Улучшить читаемость кода - точно не к ТСу
TS помогает лучше где-то ловить ошибки на этапе статик анализа и лучше понимать код. Но где-то ухудшает его читаемость, особенно с многоуровневыми описаниями типов в библиотечном коде, а где-то заставляет пистаь иначе, потому что не удалось его победить и заставляет больше страдать с инструментами и IDE, если речь про ноду
Так а дискуссия не о цели тайпскрипта была
3 пункт - сложный вопрос, проблем в IDE он приносит скорее больше
И конкретно тебе я рекомендую тс, писал уже выше
enum Example { First = 'first' } транспилируется в var Example ;(function(Example) { Example["First"] = "first" })(Example || (Example = {}))
Я бы сказал, что остаётся не тс, а поведение, которое он в данном случае реализовал. И всё равно похоже что мы можем исхитриться и нарушить инвариант
да я вообще бы enum-ы тайпскриптовые запретил, всю концепцию портят..
Ты не туда воюешь)
А мы тут и не воюем
а тебя и не спрашивали)
А кого спрашивали?
ты можешь задать этот вопрос к себе, что бы понять о чем был первоначальный вопрос
Посмотри наверх, и увидишь что это я начал беседу
Окей, и какой там был посыл?
Там было обсуждение тайпскрипта, скажи лучше какой посыл твоего вопроса?
Почему не туда?
а почему туда?)
Обсуждают сегодня