TypeScript ( TS ) は、JavaScriptにオプションの型注釈による静的型付けを追加する高水準プログラミング言語です。大規模アプリケーションの開発向けに設計されています。JavaScriptにトランスパイルされます。[ 6 ] Microsoftによって開発され、 Apache License 2.0の下でリリースされたフリーかつオープンソースのソフトウェアです。
TypeScript は、クライアント側とサーバー側の両方で実行される JavaScript アプリケーションの開発に使用できます( React.js、Node.js、Deno 、 Bunなど)。トランスパイルには複数のオプションがあります。デフォルトの TypeScript コンパイラを使用することもできます[ 7 ]、またはBabelコンパイラを呼び出して TypeScript を JavaScript に変換することもできます。
TypeScript は、既存の JavaScriptライブラリの型情報を含む定義ファイルをサポートしています。これは、 C++ のヘッダーファイルが既存のオブジェクトファイルの構造を記述できるのとよく似ています。これにより、他のプログラムは、ファイルで定義された値を、静的に型付けされた TypeScript エンティティであるかのように使用できます。jQuery 、MongoDB、D3.jsなどの人気ライブラリには、サードパーティのヘッダーファイルがあります。Node.jsライブラリモジュール用の TypeScript ヘッダーも利用可能で、TypeScript 内で Node.js プログラムを開発できます。[ 8 ]
TypeScript 7.0 より前は、TypeScript コンパイラはTypeScript で記述され、 JavaScript にコンパイルされていました。TypeScript 7.0 では、Goで書き直されました。[ 9 ] Apache License 2.0でライセンスされています。C #の主任アーキテクトであり、DelphiとTurbo Pascalの作成者であるAnders HejlsbergがTypeScript の開発に携わっています。[ 10 ] [ 11 ] [ 12 ] [ 13 ]
TypeScript は、Microsoft での 2 年間の内部開発を経て、2012 年 10 月にバージョン 0.8 として一般公開されました。[ 14 ] [ 15 ]最初の一般公開後まもなく、Miguel de Icaza は言語を称賛しましたが、当時LinuxとmacOSでは利用できなかったMicrosoft Visual Studio以外の成熟した統合開発環境(IDE) サポートの欠如を批判しました。[ 16 ] [ 17 ] 2021 年 4 月現在、Emacs 、 Vim 、 WebStorm 、 Atom [ 18 ] 、 Microsoft 独自のVisual Studio Code [ 19 ] など、他の IDE やテキスト エディタでサポートされています。2013年にリリースされた TypeScript 0.9 では、ジェネリクスのサポートが追加されました。[ 20 ]
TypeScript 1.0 は、 2014 年にMicrosoft のBuild開発者会議でリリースされました。 [ 21 ] Visual Studio 2013 Update 2 では TypeScript が組み込まれてサポートされました。[ 22 ] 2014 年 7 月には、開発チームが新しい TypeScript コンパイラを発表し、パフォーマンスが 5 倍向上したと発表し、さらなる改善が行われました。同時に、当初CodePlexでホストされていたソースコードはGitHubに移行されました。[ 23 ]
2016年9月22日、TypeScript 2.0がリリースされ、プログラマーがオプションでnull安全性を強制できる機能など、いくつかの新機能が導入されました。[ 24 ]
TypeScript 3.0 は 2018 年 7 月 30 日にリリースされ[ 25 ]、レスト パラメータとスプレッド 式のタプル、タプル型を持つレスト パラメータ、ジェネリック レスト パラメータなど、多くの言語機能が追加されました。[ 26 ]
TypeScript 4.0 は 2020 年 8 月 20 日にリリースされました。[ 27 ] 4.0 では破壊的な変更は導入されませんでしたが、カスタムJSXファクトリや可変タプル型などの言語機能が追加されました。[ 27 ]
TypeScript 5.0は2023年3月16日にリリースされ、デコレータのサポートが含まれていました。[ 28 ]
2025年3月11日、Anders HejlsbergはTypeScriptブログで、チームがTypeScriptコンパイラのGo言語版を開発中で、今年後半にTypeScriptバージョン7.0としてリリースされる予定だと発表した。10倍の高速化が期待されている。[ 29 ]
2025年12月2日、ダニエル・ローゼンワッサーはブログで、TypeScript 6.0がTypeScript自体で書かれた最後のリリースとなり、TypeScript 7.0がGoベースの最初のリリースとなることを発表した。[ 30 ]
TypeScriptは、Microsoft社内および社外の顧客の間で大規模アプリケーションを開発する際のJavaScriptの欠点から生まれた。[ 31 ]複雑なJavaScriptコードを扱う際の課題から、この言語でのコンポーネント開発を容易にするためのカスタムツールの需要が高まった。[ 32 ]
開発者たちは、 ECMAScript(ES)標準とそのエコシステムとの互換性を損なわない解決策を模索し、型注釈とクラス(TypeScriptファイル)を備えたJavaScriptのスーパーセットを、元のECMAScript 5コードに変換するコンパイラを開発しました。TypeScriptクラスは、当時提案されていたECMAScript 6クラス仕様に基づいており、プロトタイプ継承の記述をより簡潔でエラーの少ないものにし、型注釈によってIntelliSenseとツールの改善を実現しました。
TypeScriptはJavaScriptに以下の構文拡張機能を追加します。
構文的には、TypeScriptはJScript .NETと非常によく似ています。JScript .NETも、静的型付けと、クラス、継承、インターフェース、名前空間といった古典的なオブジェクト指向言語機能のサポートを追加した、ECMA-262言語標準のMicrosoftによる実装です。その他、JavaやC#からも影響を受けています。
TypeScriptはJavaScriptの上位互換であるため、既存のJavaScriptをTypeScriptに適合させることができ、TypeScriptプログラムはJavaScriptをシームレスに利用できます。コンパイラはECMAScriptバージョン5以降すべてを対象とすることができ、クラスやアロー関数などの最新機能を古いバージョンにトランスパイルします。
TypeScript を使用すると、既存の JavaScript コードを使用したり、人気のある JavaScript ライブラリを組み込んだり、他の JavaScript から TypeScript で生成されたコードを呼び出したりすることが可能になります。[ 33 ]これらのライブラリの型宣言は通常ソースコードとともに提供されますが、必要に応じて個別に宣言またはインストールすることもできます。
TypeScriptコンパイラは、TypeScriptで記述されtscています。そのため、通常のJavaScriptにコンパイルでき、任意のJavaScriptエンジン(ブラウザなど)で実行できます。コンパイラパッケージには、コンパイラを実行できるスクリプトホストが同梱されています。また、ホストとしてNode.jsを使用するNode.jsパッケージとしても利用可能です。コンパイラは現在、バージョン7向けにGoに移植されています。[ 34 ]
コンパイラは特定のECMAScriptのエディション(例えば、旧バージョンのブラウザとの互換性のためにECMAScript 5など)をターゲットにすることができますが、デフォルトでは最新の標準規格に合わせてコンパイルされます。
プラグインを使用することで、TypeScript はGrunt (grunt - ts [ 40 ] )、Apache Maven (TypeScript Maven Plugin [ 41 ] )、Gulp (gulp-typescript [ 42 ] )、Gradle (TypeScript Gradle Plugin [ 43 ] ) などのビルド自動化ツールと統合できます。
標準的なJavaScriptリンターであるESLintも、typescript-eslintプラグインを介してTypeScriptのサポートを提供している。[ 44 ]
は F# から直接影響を受けています。TypeScript の創始者の 1 人は Luke Hoban で、F# 2.0 の作業の直後に TypeScript(当時は Strada と呼ばれていました)を開始しました。最近、彼は TypeScript 設計の初期部分に F# が影響を与えたことを指摘しました [Hoban 2017]。
しかし、TypeScript は Unix 開発者にとって、強力な型付け言語を使用する価値の半分、つまり強力な型付けしか提供しません。 IntelliSense、コード補完、リファクタリングは、Windows 上の Visual Studio Professional ユーザーのみが利用できるツールです。Eclipse、MonoDevelop、Emacs は、言語機能のいずれもサポートしていません。
そして、これはかなり大きな間違いだと思います。Windows 以外の環境で動作する Web アプリを構築している場合、おそらく Mac を使用しており、Visual Studio は使用していないでしょう。IntelliSense を使用するには Visual Studio プラグインが必要です。Visual Studio がない場合、得られるのは厳密な型付けだけです。IntelliSense から得られる生産性のメリットは得られません。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク)