TypeScriptの背後にある動機は何ですか?


21

JavaScriptがあり、次にFlashがあり、Silverlightがあり、HTML5がそれらすべてを所有していました。

それでは、TypeScriptの背後にある動機は何ですか?TypeScriptでどのような問題に取り組み、どのような改善が得られますか?

http://www.typescriptlang.org/


15
HTML5がJavaScriptを「所有」していると思うのはなぜですか?
ベルギ

1
共通の基盤=>技術と開発が行き詰まっていることを見つけるために、誰もが何かに同意しなければならなかったという意味で。
下呂

3
なぜダートに言及したのですか?
ロバートハーヴェイ

Dart、TypeScript、CoffeescriptはJavaScriptにコンパイルできます。そして、ダートも非常に新しいです。
下呂

Nicholas C. Zakasによるこの記事「Thoughts on TypeScript」をご覧ください。nczonline.net
blog /

回答:


35

JavaScriptにコンパイルされる静的に型付けされたクラスベースの言語のように思えます。それは良いアイデアであり、他の人も持っていたものです。

利点は、静的に型付けされたクラスベースの言語とJavaScriptの両方で開発された人には明らかです。

  • 何よりまず、コンパイラ。 展開前にタイプミスや不注意によって引き起こされる明らかな正確性の問題をチェックできることは、ほとんどの開発者がWeb開発を行う必要があるまで当然のことと考えており、それが突然足元から消えてしまいます。ブラウザは、適切なテストおよびデバッグ機能を犠牲にして閲覧体験を快適にするように設計されており、標準ソリューションであるJSLintは、いくつかの明らかな正確性の問題を逃し、そのレポートで。本物のコンパイラを持つことは、大きな前進です。
  • そして、同様の線に沿って、型システム。型システムは、読みやすく(たとえば、パラメーターリストを調べるだけで、関数に渡される内容と実行できる内容を正確に把握できます)、コンパイル時にある程度の正確さを強制することにより、コードを改善します。時間。(特定のオブジェクトタイプを期待している場合、整数を渡すとエラーになります。JavaScriptでそれを実行でき、実行しようとすると爆発します。タイプシステムを備えたコンパイラはそれをキャッチし、エラーを報告します君は。)

ご覧の通り、基本的な考え方は非常に良いものです。そうは言っても、経験がないので、言語自体については何も言えません。しかし、私はSmart(上記にリンク)を使用しましたが、これはWeb開発に非常に強力で便利なツールであることがわかりました。


7
それは、それをコンパイルする新しい言語というよりも、JavaScriptのスーパーセットのようなものです。
ダニエルリトル

2
はい、強く入力するとプログラマが簡単になります。
エドウィンイップ

13
TypeScriptは静的に型付けされており、強く型付けされていません。
フェントン

15

私が見る限り、TypeScriptを使用する理由はいくつかあります。何よりもまず、Mason Wheelerが言ったように、コンパイラです。むしろ、コンパイラが行うすべてのチェックを行います。JSLintおよびその他のツールは便利ですが、いくつかの問題を見逃しており、時には明らかに間違っています。この「革新」を歓迎します。

次に、実際の型システムがあり、読みやすさが向上し、正しい型が強制されます。結局のところ、これにより開発速度が向上します。

私にとって、すばらしいことの1つはツールのサポートです。これはおそらく型システムの副作用ですが、それでも素晴らしいことです。そして、本当に必要なのは、現在のJavaScriptツールのサポートが有用ではないからです。

TypeScriptはJavaScript拡張しようとします。コンパイラーは本当に素晴らしいJavaScriptを生成します。そして、これに加えて、ECMAScript 6の提案に従います。(たとえば、矢印関数の構文パラメーターのデフォルト値モジュールなど。

それは作るのモジュールやクラスでの作業が容易になります。JavaScriptでクラスとモジュールを操作することは実際に可能であり、非常に一般的ですが、ある程度の定型コードが必要です。そして、読むのは本当に簡単ではありません。TypeScriptでは、JavaまたはC#と同様に、クラス、インターフェイス、およびモジュールのステートメントを記述できます。

しかし、結局のところ、それはまだJavaScriptです。新しい言語や構文を学ぶ必要はありません。それが追加する唯一のものは、オプションの型システムです(これは素晴らしいと期限切れです)。

次に、「定義ライブラリ」があります。これは、JavaScriptライブラリすべて書き換えたり、パッチを当てたりすることなく使用できることを意味します。ただし、現在、追加の型システムがあります。

私は間違いなく試してみます!

最後に、HTML5とTypeScriptの間に競合はありません。しかし、それは別の話です。


5

JavaScriptがあり、次にFlashがあり、Silverlightがあり、HTML5がそれらすべてを所有していました。

これは単に真実ではありません。Html5はそれらを所有せず、マルチメディアの使用を簡素化する新しいマークアップを導入し、新しい時代のブラウザーの利点を探ります(htmlのレンダリング中にハードウェアアクセラレーションを使用するなど)。

それでは、TypeScriptの背後にある動機は何ですか?

動機は、それを使用する理由によって駆動される場合があります。TypeScriptのすべての機能(静的チェック、シンボルベースのナビゲーション、ステートメントの完了、コードのリファクタリングなど)を考慮する非常に強力な理由です。

さらに、堅牢なコンポーネントの構築に役立つクラス、モジュール、およびインターフェイスを提供します。これらの機能は、開発時に信頼性の高いアプリケーション開発のために使用できますが、単純なJavaScriptにコンパイルされます。


HTML 5は、ハードウェアアクセラレーションの前提条件ではありません。ほとんどのブラウザはHTML5マークアップの有無にかかわらずこれをやっている
ニールN

私の声明は、ハードウェアアクセラレーションはブラウザがhtml5ではなく提供する機能であることを示しています。
EL Yusubov

3

JSにコンパイルされるまったく新しい言語ではなく、javascriptの開発を管理するツールとして扱われる場合があります。Dartのようなサーバー側の開発言語にはなりたくないし、CoffeeScriptのような別の構文もありません。人気のある言語(およびコアライブラリ)を受け取り、GWTやscript#のようなJSにコンパイルしたくありませんでした。TypeScriptは、JSの次のバージョンで提案されている同じ「クラス」構文にも従います。

今日のWeb開発のほとんどは、クライアント側でのみ実際のjavascriptを使用して行われていると思います。Dart、GWTなどの言語またはフレームワークはこれに適していません。coffeescriptを選択すると、新しい構文が表示されます。そして、あなたはcoffeescriptとJSの両方を理解する必要があります。TypeScriptは、いくつかの追加の型指向機能を追加するだけですが、JSに融合され、型固有のエラー(JSエラーの大部分)から開発者を救い、開発ツールに開発者の意図に関する詳細情報を提供します。

このアプローチは新しいものではありません。「静的入力」セクションに移動します

この記事では、クエリに対応しています-http : //www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

共有された信頼性の低いがらくた(javascript)を、実質的なプロジェクトで実際に使用できる独自の言語に変える努力だと思います。

GWTと比較する必要があります。GWTは似た​​ような目標を持っていますが、JavaScriptを言語の一部にしないことで、よりクリーンなアプローチをとりました。また、JavaアプレットまたはFlashを使用すると、ブラウザに依存しない完全なランタイム環境を定義する非常にクリーンなアプローチを採用できます。

あなたの意見は異なるかもしれませんが、ネイティブに(変化する、一貫性のない)javascript実装とDOMモデルを提供するブラウザに依存する限り、それは運命だと思います。


5
第一に、それはプロプライエタリではなく、すでにオープンスタンダードです。第二に、GWT / ScriptSharpよりもDartに似ています(ただし類似しています)。
ダニエルリトル

1
この時に勝つための方法はおそらくありません- Microsoftがそれを制御しない場合には、バリエーションの多くが付いている別のbastardized言語となり、それはまだ、JavaScriptとのDOMのシフト砂に依存します
ddyer

1
現在の人気のあるHTML5 / JSスタックでは、FlashやJavaのスキルをかなり苦手にしている人のように思えます。
グラハム

3
-1あなたはJavaScriptが好きではありません。それは基本的にあなたの声明です。
ブルーノシェーパー

2
公正であり、タイプスクリプトの基礎であるため、タイプスクリプトは悪い基礎に基づいていると思います。それは必ずしも致命的ではありませんが、傷ついた世界です。
-ddyer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.