JavaScriptとTypeScriptのオブジェクト指向機能の比較
簡易な一覧ですが、型に関する機能が拡張されていることがわかると思います。
| 機能名 | JavaScript | TypeScript |
|---|---|---|
| クラス構文 | ○ | ○ |
| クラス継承 | ○ | ○ |
| super | ○ | ○ |
| コンストラクタ | ○ | ○ |
| 抽象クラス(abstract) | ✕ | ○ |
| 抽象メソッド | ✕ | ○ |
| アクセス修飾子 | △ | ○ |
| インターフェース | ✕ | ○ |
| ジェネリクス | ✕ | ○ |
| 静的プロパティ | △ | ○ |
| 静的メソッド | △ | ○ |
| finalクラス / sealedクラス | ✕ | ✕ |
| finalメソッド | ✕ | ✕ |
クラスにかかわらずTypeScriptの特徴となるのはコーディング中に型が不適切な場合はコンパイルエラーを教えてくれることです。JavaScriptの場合は基本的に実行を行い不正な型が発生した場合に型エラーを知ることになります。TypeScriptコードに問題がなく型安全と判断された場合に限りコンパイルを行うことができます。また出力されたJavaScriptファイルには型情報は除かれます。