2016-04-18 1 views
1

Typescriptは、Javascriptアプリケーションを開発するために使用される言語です。私はなぜC#のような成熟した進化する言語を使う代わりに新しい言語が作られたのか理解できません。コードをJavascriptに変換するためにC#が使用されていた可能性があります。この仕事をしている多くのサードパーティーとオープンソースのプロジェクトがあります。 C#はクロージャ、ダイナミックキーワードをサポートしていますので、C#をJavaScriptに変換するのは簡単でした。構文からも、TypescriptはC#の影響を受けているようです。なぜマイクロソフトでは、Javascript transpilerにC#を作成する代わりに、Typescriptという新しい言語を開発しました

だから、質問は

  1. マイクロソフトはなぜ代わりにJavascriptのtranspilerへのC#を作成するの活字体と呼ばれる新しい言語を開発しましたか? C#は同じ目的のために使用されている可能性があります。
  2. 技術的/その他の理由はありますか?
+1

javascriptに変換できる言語はかなりたくさんあります([ここにリストがあります](https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-c​​ompile-to-js)。 ))しかし、typescriptの目的はjavascriptのスーパーセットになることです。つまり、javascriptで書いていますが、いくつかの追加(インターフェースなど)があります。 typescriptの目的は[ここ](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals)にありますが、 'C# 'が一致しないことに気付くでしょう。 –

+0

@ Pointyこの仕事をするツールはたくさんあります。例:Bridge.Net、Jsil.orgなどだから質問はなぜマイクロソフトではないのですか? – parag

答えて

4

なぜMicrosoftはTypescriptという新しい言語を開発したのですか? Javascript transpilerにC#を作成するのはなぜですか? C#は同じ目的のために のために使用されていた可能性があります。

技術的/その他の理由はありますか?

技術的にはい、しかしいいえ。 C#のルールはJavaScriptのルールとは大きく異なります。彼らは同じように見えるかもしれませんが、彼らは非常に離れています。 (JavaとJavaScriptはどちらもブラケットを使用していて、どちらもJavaで始まっているので、まったく同じです。)TypeScriptはJavaScript言語を拡張しています。あなたはまだTypeScriptでJavaScriptを書くことができます。 C#を使用した場合、それを行うことはできません。

ここにいくつかの例があります。 C#では、複数のコンストラクタを持つことができます。 JavaScript(ハイランダーのような)は1つしかない。

C#ではメソッドのオーバーロードが可能です。 JavaScript ....いいえ。

JavaScriptは、メソッド呼び出しでさまざまなパラメータを持つことができます。必要に応じて5つのパラメータを取り、5,4,0、または7で呼び出すメソッドを持つことができます。 C#はこれを処理できません。

これでC#からJavaScriptコードを生成できましたが、実際にはC#の使用に対応するためにJavaScriptのサブセットを使用するだけです。 TypeScriptは、JavaScriptの境界内で動作するまったく新しい言語であり、強く型付けされた言語で可能な構造を提供します。

+0

上記の回答から引用してください。 "TypeScriptはJavaScript言語を拡張していますが、JavaScriptをTypeScriptに書くことはできますが、C#を使用していればそれはできません。 。私はこれがタイスクリプトの本当の理由だと思う。 – parag

0

TypescriptはJavascriptの厳密なスーパーセットです。ほとんどの有効なJSも有効なTypescriptです。 Javascriptとの相互運用性のために作られました。 C#を同じレベルにすることはできません。 immediatly明らかではないかもしれないが、間違いなく困難なさまざまなセマンティクス。

構文は似ているかもしれませんが、2つの言語は完全に異なるレベルの機能に賢明です。

関連する問題