Size: a a a

2020 October 22

EO

Eugene Obrezkov in Frontend UA
Roman 🔘
а у тебя были какие то проблемы с этим? много ошибок в рантайме?
Например, было бы удобно, чтобы type guards эмитил typescript а не нам руками писать
источник

TS

Terry Sahaidak in Frontend UA
Leo Hra
навіть якщо скафолдить кра з прапорцем тайпскріпта?
для прикладу, в тебе є ліба, яка реалізовує декоратор, який поводиться по-одному, і працює прекрасно в проектах з tsc, проте в cra воно не буде працювати, тому шо декоратор там по-іншому працює
источник

R🔘

Roman 🔘 in Frontend UA
Eugene Obrezkov
Например, было бы удобно, чтобы type guards эмитил typescript а не нам руками писать
ну на каких то простых это может быть и работало бы, кмк
источник

R🔘

Roman 🔘 in Frontend UA
+ зависит от того насколько система типов explicit
источник

TS

Terry Sahaidak in Frontend UA
Terry Sahaidak
для прикладу, в тебе є ліба, яка реалізовує декоратор, який поводиться по-одному, і працює прекрасно в проектах з tsc, проте в cra воно не буде працювати, тому шо декоратор там по-іншому працює
ти зараз дуже скептично ставишся до декораторів, тому що вони не стандартизовані в жс, це логічно
проте в ТС все по-іншому
деекоратори хоч і досі в experimentalDecorators флажку, безлііч популярних ліб і тд їх використовує, тому вони давно вже вийшли з experimental статусу) їх не можуть просто так дропнути
источник

LH

Leo Hra in Frontend UA
проблема ж не в декораторах як синтаксисі, а в внутрішній імплементації
источник

TS

Terry Sahaidak in Frontend UA
Leo Hra
проблема ж не в декораторах як синтаксисі, а в внутрішній імплементації
так) проблема в тому, що CRA офіційно підтримує TS, проте по-своєму)
источник

LH

Leo Hra in Frontend UA
+ тс це все ж суперсет жс’а тому хоч не хоч, а буде жити за правилами жс теж
источник

LH

Leo Hra in Frontend UA
Terry Sahaidak
так) проблема в тому, що CRA офіційно підтримує TS, проте по-своєму)
так, я вже це зрозумів. Дивно насправді, що такий популярний інструмент “недопрацював” тут
источник

LH

Leo Hra in Frontend UA
хоча ж вони заявляють, що це opiniated рішення
источник

TS

Terry Sahaidak in Frontend UA
і чомусь всі вирішили перейти на babel для транспайлу TS в якийсь момент)
источник

TS

Terry Sahaidak in Frontend UA
та це більше проблема бабеля навіть
источник

TS

Terry Sahaidak in Frontend UA
https://babeljs.io/docs/en/babel-plugin-transform-typescript#caveats

вроді отут пару штук описано, проте на практиці їх звісно ж більше
источник

AK

Alexander Kuzmenko in Frontend UA
Leo Hra
проблема ж не в декораторах як синтаксисі, а в внутрішній імплементації
а что там за проблема?
источник

TS

Terry Sahaidak in Frontend UA
Alexander Kuzmenko
а что там за проблема?
https://codesandbox.io/s/focused-saha-ebl4o?file=/src/index.ts:342-470

оцей код виводить setter в консоль коли юзаєш tsc, і не виводить ніфіга коли юзаєш babel-transformer-typescript
источник

LH

Leo Hra in Frontend UA
Alexander Kuzmenko
а что там за проблема?
Це краще погуглити, але здається в тому, що не можуть вирішити деякі проблеми внутрішньої імплементації. Веб і жс у нас же зворотньо сумісні і не можна нічого зламати чи зробити breaking change
источник

TS

Terry Sahaidak in Frontend UA
Leo Hra
Це краще погуглити, але здається в тому, що не можуть вирішити деякі проблеми внутрішньої імплементації. Веб і жс у нас же зворотньо сумісні і не можна нічого зламати чи зробити breaking change
власне все простіше)
зараз проблема в тому, що babel-transform-decorators, який використовують для typescript працює не так, як той самий трансформер, який є в tsc

в цілому пропозал декораторів зараз дуже схожий на те, як вони працюють в typescript
https://github.com/tc39/proposal-decorators

власне в моєму кейсі, я декорую class field і мені треба оголосити кастумні get/set, що працює прекрасно в tsc, проте не працює в babel-transform-decorators
источник

AL

Andrey Listochkin in Frontend UA
Terry Sahaidak
для прикладу, в тебе є ліба, яка реалізовує декоратор, який поводиться по-одному, і працює прекрасно в проектах з tsc, проте в cra воно не буде працювати, тому шо декоратор там по-іншому працює
я понимаю, что ты не в эту сторону копаешь. Но если декоратор в либе, мб ее собрать через tsc один раз, а в проекте на cra/next юзать уже собранный JS этой либы?
источник

TS

Terry Sahaidak in Frontend UA
Andrey Listochkin
я понимаю, что ты не в эту сторону копаешь. Но если декоратор в либе, мб ее собрать через tsc один раз, а в проекте на cra/next юзать уже собранный JS этой либы?
думав, але не проканає) там вже суть якраз в тому коли він викликається, як я зрозумів

відповідно не залежно від того як я скомпілюю той декоратор, в юзера він викличеться до ініціалізації філда, а не після - так як tsc транспілює філди з декораторами
источник

TS

Terry Sahaidak in Frontend UA
поки просто переписав без декоратора) як компроміс підійде
источник