Ответ
TypeScript — это надмножество JavaScript, но есть альтернативы:
- Flow — статический анализатор от Facebook, легковесный, но менее популярный.
// @flow
function sum(a: number, b: number): number {
return a + b;
}
-
PureScript — строго типизированный язык, компилируемый в JS, с влиянием Haskell.
-
ReasonML (BuckleScript) — синтаксис OCaml, строгая типизация, работает с React.
-
Dart — язык от Google, с опциональной типизацией, используется во Flutter.
-
Elm — функциональный язык для фронтенда с сильной типизацией и отсутствием runtime-ошибок.
-
ClojureScript — компилятор Clojure в JS, динамическая типизация, иммутабельность.
Для крупных проектов чаще выбирают TypeScript из-за интеграции с экосистемой JS.
Ответ 18+ 🔞
А, ну, блядь, TypeScript, этот ваш типизированный переросток JavaScript, да? Ну, в целом, штука годная, но не одна же она такая умная на свете, есть же и другие, которые тоже мозги включать заставляют.
Вот, смотри, какие варианты есть, кроме этого вашего TS:
-
Flow — это типа статический анализатор, который Facebook выкатил. Штука вроде лёгкая, но народ как-то не особо на неё подсел, понимаешь? Мода прошла, блядь.
// @flow function sum(a: number, b: number): number { return a + b; } -
PureScript — это уже серьёзный перец, блядь. Язык строго типизированный, компилируется в JS, и там от Haskell намешано столько, что волосы дыбом встают. Не для слабаков, ёпта.
-
ReasonML (он же BuckleScript) — тут уже OCaml свой нос суёт. Синтаксис непривычный, типизация строгая, но с React он, говорят, дружит как родной. Надо мозги перестроить, конечно.
-
Dart — это Гугл свой продукт пихает. Типизация опциональная, то есть можешь и без неё, как в обычном JS. В основном на нём сейчас под Flutter пляшут, для мобилок.
-
Elm — вот это, блядь, для тех, кто runtime-ошибок боится как огня. Язык функциональный, типизация сильная, и тебе обещают, что если код скомпилировался, то он не упадёт. Ну, почти не упадёт, ядрёна вошь.
-
ClojureScript — это вообще отдельная песня, блядь. Компилятор Clojure в JS. Тут динамическая типизация, но зато всё иммутабельное, менять ничего низя. Для любителей скобочек и философии.
И что в сухом остатке, спросишь? А то, что для больших, серьёзных проектов все равно тащат TypeScript, потому что он, сука, как родной в экосистему JS влился. Остальные — это такие эксперименты, на любителя, понимаешь? Кто во что горазд.