web-dev-qa-db-ja.com

タイプスクリプトを使うべきですか?それとも私はES6を使用することができますか?

私の日々の仕事はAngularJSを使ったクライアント開発者です。 TypeScriptを使いたいのかどうかを評価しています。私はTypeScriptと私が必要とするほとんどすべてのJavaScriptパッケージについて定義型ファイルを持っていなければなりませんでした。私はそれがあまり便利ではないことに気づきました、特に私が何か新しいことを試みたいと思っていて、彼らがそれに対する定義を持っていない場合。それは本当にイライラする。 (現在のjQuery定義でさえ、TypeScript 1.5 Betaを使いたいのであればいくつか問題があります)。私はES6を見始めましたが、それはTypeScriptに似ています。代わりにES6を使うべきですか?また、私はAngular 2がTypeScriptを完全にサポートすると聞きましたが、それが私がそれを続けるべき理由の1つでしょうか。

276
cjskywalker

私は約1年半の間私の現在のAngularプロジェクトでTypeScriptを使用してきましたし、定義には時々問題がいくつかありますが、 DefinitelyTyped プロジェクトは最新バージョンに追いついて驚くべき仕事をします。最も人気のあるライブラリ.

Vanilla JavaScriptからTSに移行するときには明確な学習曲線があると述べたので、その移行を行うためのあなたとあなたのチームの能力を考慮に入れるべきです。また、あなたがAngular 1.xを使用しようとしているならば、あなたがオンラインで見つけるであろう例の大部分はあなたがそれらをJSからTSに翻訳することを必要とするでしょう。 。

角度2の使用を計画している場合は、TSを使用した例が多数あり、チームはTSでほとんどの資料を提供し続けると思いますが、角度2を使用するためにTSを使用する必要はありません。

ES6にはいくつかのNice機能があり、私は個人的にそれに慣れることを計画していますが、現時点ではプロダクション対応言語とは思いません。主に現在のブラウザによるサポートの欠如によるものです。詳細については this SO answerを参照してください。もちろん、コードをES6で記述し、それをES5に変換するためにトランスパイラーを使用することができます。

全体として、答えはあなたとあなたのチームが快適に学習できることにかかっていると思います。私は個人的にはTSとES6の両方が良いサポートと長い未来を持っていると思います、あなたは言語機能をより早く手に入れる傾向があるのでTSを好みます。

112
Kent Cooper

ES5、ES6とTypeScriptの間の決定木

ビルドステップがありますか。

  • はい - ES5を使用する
  • いいえ - やり続けます

型を使いますか?

  • はい - TypeScriptを使う
  • いいえ - ES6を使用します

もっと詳しく

ES5 は今日のブラウザで使用しているJavaScriptであり、現在のブラウザで動作するものに変換するためのビルド手順は不要です。

ES6 ES2015 とも呼ばれる)は、JavaScriptの次のバージョンですが、今日のブラウザでは動作しません。ブラウザで実行するためにES5をエクスポートするトランスパイラーはかなりあります。それはまだ動的な(read:untyped)言語です。

TypeScript は、将来のバージョンのJavaScript(ES6およびES7)から機能を取り入れながら、オプションの入力システムを提供します。

注:多くのtranspiler(すなわち、babel、TypeScript)は今日の将来のバージョンのJavaScriptの機能を使うことを可能にし、今日のブラウザで実行されるコードをエクスポートすることを可能にします。

654
Brocco