второе
Одна из важнейших вещей, которые надо помнить про ts: в рантайме он превращается в тыкву
Я уже забыл. Что там с энам?
enum - зло именно из-за того, что не превращается в тыкву при транспиляции enum TestEnum { a = 'a' } превращается в var TestEnum ;(function(TestEnum) { TestEnum["a"] = "a" })(TestEnum || (TestEnum = {}))
А почему это именно плохо? Именно фактически, на что это влияет? Я серьёзно не совсем понимаю проблемы в этом именно фактической ТС не должен добавлять своего так сказать, иначе это плохо Но метаданные, декораторы, енамы и все такое добавляет же, так в чем проблема именно реальная?
потому что, если коротко, тайпскрипт не должен в рантайм ничего своего приносить, если из кода на TS убрать признаки TS, то должен получиться работающий JS, enum этот основополагающий принцип ломает
но почему это плохо? Я эту причину описал Вряд-ли кто-то когда-то будет убирать ТС из проекта
Так себе определение имхо. А stage 3 фичи которые они делают считаются за "работающий js"? Даже если они не работают? А если я в es5 собираю то классы юзать плохо? Какой смысл?
Я не понял мысль. Результат транспиляции - работающий жс код. То, во что превратился энам - корректный жс код. Пока не понимаю где проблема
тайпскрипт он про расширение пространства типов, а не про синтаксический сахар над уже имеющимися фичами JS, enum с классами сравнивать не совсем корректно.. моя идея "плохости" в том, что какое-то подобие "типов" просачивается из TS в JS сложно мне сейчас коротко и понятно донести свою мысль, но за вопросы спасибо, есть ещё нал чем подумать
Обсуждают сегодня