http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdfにある TypeScript 仕様を読みました 。
しかし、それは私を次のように混乱させました:
- インターフェース
- クラス
- モジュール
- プログラム
- 機能。
- 宣言と var
誰かが上記のどれをいつ使用すべきかを簡単に理解するのを手伝ってもらえますか? インターフェイスとクラスは C# 版と同じですか?
http://www.typescriptlang.org/Content/TypeScript%20Language%20Specification.pdfにある TypeScript 仕様を読みました 。
しかし、それは私を次のように混乱させました:
誰かが上記のどれをいつ使用すべきかを簡単に理解するのを手伝ってもらえますか? インターフェイスとクラスは C# 版と同じですか?
質問で言及したように、これらの回答をC#に一致させましたが、同様の言語からTypeScriptに来る人々にも回答が役立つことを願っています.
インターフェース
TypeScript のインターフェイスは、C# で遭遇したものと似ています。これはコントラクトです。クラスの 1 つがインターフェイスを実装する場合、インターフェイスがドキュメント化する特定のプロパティまたはメソッドを持つことを約束します。
TypeScript では、インターフェイスは、それを拡張するために別のインターフェイスから継承したり、その実装をキャプチャするためにクラスから継承したりできます。
TypeScript で何かが不可能に思えるときはいつでも、通常はインターフェースで解決できます!
TypeScript では、インターフェイスには幅広い用途があります。これらは構造を記述するため、型を使用する場所ならどこでも使用できます (つまり、クラスに実装するだけでなく、変数、パラメーター、戻り値などを型指定するために使用できます)。
クラス
これは、C# のクラスの概念に非常に似ています。他のクラスから継承して、動作を拡張または特殊化できます。
名前空間
newer 名前空間キーワードは、限定されたスコープ内にコードのグループを配置するために使用されます。これは、C# 名前空間に似ています。
モジュール
TypeScript に関しては、モジュールは名前空間よりも優れています。モジュール (以前は外部モジュールと呼ばれていました) は自己完結型のファイルであり、グローバル スコープには何も追加しません。必要に応じて、モジュールをローカル変数にロードできます。モジュールは、コードを整理し、必要に応じてパーツをロードするための優れた方法を提供します。モジュールを使用する場合は、名前空間を使用しないことをお勧めします。モジュールは名前空間よりも優れています。
プログラム
プログラムは、モジュール、クラスの集まりです。これは基本的に、TypeScript を使用して記述したものです。
機能・方法
クラスにはメソッドが含まれており、クラスに属さないスタンドアロン関数を作成することもできます。
宣言と var
var
新しい変数を作成します。declare
変数が別の場所で作成されたことを TypeScript に伝えるために使用されます。を使用するdeclare
と、生成される JavaScript には何も追加されません。これは単にコンパイラへのヒントです。
たとえば、 を定義する外部スクリプトを使用する場合、既にセットアップされているTypeScript コンパイラにヒントを与えるためにvar externalModule
使用します。declare var externalModule
externalModule