web-dev-qa-db-ja.com

BabelとTypeScriptの主な違いは何ですか

TypeScriptがAngular2の作成に使用されたことを知っています。これはおそらく、Angular2を使いたい人にとってより良い選択になりますが、Babelを見るとTypeScriptによく似ています。

多くの有名な会社がバベルに固執していることに気付きました。

いくつかの質問:

  1. お互いにどのような利点がありますか?
  2. プロジェクト/開発者にとってどちらが良い選択か悪い選択か?
  3. それらの主な違いは何ですか?
41
DevWL

TypeScript は、プレーンJavaScript(ES3 +)にコンパイルされるJavaScriptのスーパーセットです。 TypeScriptの主な目標は、開発者が優れた静的型付け機能を活用できるようにすることです。次のような機能の恩恵を受ける大規模なアプリケーションに適しています。

  • 型注釈と型推論。
  • ジェネリック。
  • インターフェイス、enum、名前空間、モジュール、およびクラス(後者の2つはES6で利用可能)。
  • 安全なリファクタリング。

私の知る限り、 Babel は、新しいECMAScript機能を古いECMAScript環境でサポートされている形式に単純に「変換」します。新しい言語機能を使用してプレーンなJavaScriptを記述したい開発者に適しています。

58
Marty

Victor Savkinは、angular= 2人の開発者が、他のテクノロジーよりもTypeScriptを選択した理由について語っています。

http://victorsavkin.com/post/123555572351/writing-angular-2-in-TypeScript

最後のセクションなぜTypescriptなのか

「今日、フロントエンド開発者が利用できるオプションはたくさんあります。ES5、ES6(Babel)、TypeScript、Dart、PureScript、Elmなどです。なぜTypeScriptなのですか?

ES5から始めましょう。 ES5には、TypeScriptよりも大きな利点が1つあります。トランスパイラーが不要です。これにより、ビルドのセットアップをシンプルに保つことができます。ファイルウォッチャーをセットアップしたり、コードを変換したり、ソースマップを生成したりする必要はありません。それはただ動作します。多くの小規模プロジェクトでは、TypeScriptが提供する高度なリファクタリングおよびナビゲーション機能よりも、この単純さが重要です。すべてのコードがどこにあり、何をするのかを知っているだけです。

ES6にはトランスパイラーが必要なので、ビルドのセットアップはTypeScriptとそれほど変わりません。ただし、これは標準です。つまり、すべてのエディターとビルドツールがES6をサポートするか、ES6をサポートします。

ElmとPureScriptは強力な型システムを備えたエレガントな言語であり、TypeScriptよりもプログラムについて多くのことを証明できます。 ElmとPureScriptで記述されたコードは、ES5で記述された同様のコードよりもずっと簡潔です。

これらのオプションにはそれぞれ長所と短所がありますが、TypeScriptはほとんどのプロジェクトに最適な選択肢であると思います。 TypeScriptは、静的に型付けされた優れた言語の95%の有用性を利用して、JavaScriptエコシステムにもたらします。 ES6を書いているように感じます。同じ標準ライブラリ、同じサードパーティライブラリ、同じイディオム、および同じツールの多くを使用し続けます(例、Chrome dev tools)。 JavaScriptエコシステムから無理やり追い出すことなく、多くのことができます。」

27