Size: a a a

2021 January 07

AB

Anton Burkin in javascript_ru
Никита Сковорода
Я могу исправить это недоразумение.
Я уже пофиксил.
источник

НС

Никита Сковорода... in javascript_ru
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
источник

НС

Никита Сковорода... in javascript_ru
Но в целом тс — полезный. Но говно.
источник

НС

Никита Сковорода... in javascript_ru
Anton Burkin
Я уже пофиксил.
Я пофиксил.
источник

PC

Pavel Chebotarev in javascript_ru
Никита Сковорода
Но в целом тс — полезный. Но говно.
Ну вот, назвали TS говном!
источник

НС

Никита Сковорода... in javascript_ru
Pavel Chebotarev
Ну вот, назвали TS говном!
Я же сказал, что пофиксил то, что его не называли!
источник

᠌ ᠌ ᠌᠌᠌ ᠌ ᠌᠌᠌ ᠌ ᠌᠌᠌ ... in javascript_ru
Pavel Chebotarev
Ну вот, назвали TS говном!
Ну чел правду говорит
источник

PC

Pavel Chebotarev in javascript_ru
Никита Сковорода
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
А что, в C/C++/D/Rust/Go/Nim/Zig проверки типов не отваливаются в рантайме? Они не статические?
источник

a

allpeg in javascript_ru
Pavel Chebotarev
Есть только одна проблема в том что TypeScript это другой язык, не JavaScript ;)
это настолько другой язык, что он компилируется в один единственно возможный язык :)
(хотя если считать es5 es6 и т.п. разными то да, не в один)
источник

PC

Pavel Chebotarev in javascript_ru
allpeg
это настолько другой язык, что он компилируется в один единственно возможный язык :)
(хотя если считать es5 es6 и т.п. разными то да, не в один)
Все в конечном итоге компилируется в опкоды процессора, но это не значит что все языки теперь одинаковые. ТС дает совершенно другой стиль кодирования, мышления, проектирования и чтения
источник

К

Константин in javascript_ru
Нет
источник

a

allpeg in javascript_ru
Никита Сковорода
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
может в рантайме прилететь из пользовательских данных очень даже не стринг
без насильного каста - не может
источник

AB

Anton Burkin in javascript_ru
Никита Сковорода
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
Жиза. Я так вместо date ловил string и наоборот. И дико горел.
источник

a

allpeg in javascript_ru
Никита Сковорода
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
а вообще type guard в тс для кого
источник

a

allpeg in javascript_ru
ну и да. из другого javascript-кода прилететь МОЖЕТ. из другого typescript-кода - не может.
источник

НС

Никита Сковорода... in javascript_ru
Никита Сковорода
Тс полезный, но у него есть проблемы.
Одна из них (на мой взгляд, основная) — это не только несовместимость с жс, а совсем другая штука.

Он может создать ощущение защищённости там, где её нет.
Проверки типов статические и отваливаются в рантайме.
В рантайме примерно везде проверок никаких нет.

То есть условному Васе в функцию, где он написал, что параметры — стринг, и не сделал рантайм-проверку, может в рантайме прилететь из пользовательских данных очень даже не стринг.
И сожрать хомячка.

А, ну и баги в самом тсе тоже иногда доставляют.
> ну и баги в самом тсе тоже иногда доставляют

Интереса ради — посмотрите, во что тс компилит
{ ...x }
в разных таргетах.

Лучше бы они выкинули свой говнокод, сделали один таргет и закорачивали его в бабель, чесслово.
источник

К

Константин in javascript_ru
Бабель то ещё дно
источник

НС

Никита Сковорода... in javascript_ru
Константин
Бабель то ещё дно
Тс хуже в этом плане
источник

К

Константин in javascript_ru
Ну потому что не надо тупо в ес5 таргете писать {...}
источник

НС

Никита Сковорода... in javascript_ru
Константин
Ну потому что не надо тупо в ес5 таргете писать {...}
лол
источник