Programming language and superset of JavaScript
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コンパイラは TypeScriptで記述され 、 JavaScriptに コンパイルされます。Apache License 2.0 に基づいてライセンスされています 。C # のリードアーキテクトであり、 Delphi と Turbo Pascal の開発者でもある Anders Hejlsberg がTypeScriptの開発に携わりました。 [9] [10] [11] [12]
歴史
TypeScriptは、マイクロソフトで2年間の社内開発を経て、2012年10月にバージョン0.8で一般公開されました。 [13] [14] 最初の一般公開後すぐに、 ミゲル・デ・イカザは この言語を賞賛しましたが、当時 Linux と macOS では利用できなかった Microsoft Visual Studio 以外に成熟した 統合開発環境 (IDE)のサポートが不足していると批判しました。 [15] [16] 2021年4月現在、 Emacs 、 Vim 、 WebStorm 、 Atom [17] やマイクロソフト自身のVisual Studio Code など、他のIDEやテキストエディターでもサポートされています 。 [18] 2013年にリリースされたTypeScript 0.9では、 ジェネリック のサポートが追加されました。 [19]
TypeScript 1.0は、 2014年の Microsoft Build開発者会議でリリースされました 。[20] Visual Studio 2013 Update 2では、TypeScriptの組み込みサポートが提供されました。 [21] 2014年7月には、開発チームが5倍のパフォーマンス向上を誇る新しいTypeScriptコンパイラを発表し、さらなる改良が行われました。同時に、当初 CodePlex でホストされていたソースコードは GitHub に移行されました 。 [22]
2016年9月22日、TypeScript 2.0がリリースされ、プログラマーがオプションでnull安全性 を強制する機能など、いくつかの機能が導入されました 。 [23]これにより 、10億ドルの間違い と呼ばれることもある問題を軽減できます 。
TypeScript 3.0は2018年7月30日にリリースされ、 [24] 残りのパラメータとスプレッド式のタプル、タプル型の残りのパラメータ、ジェネリック残りのパラメータなど、多くの言語追加をもたらしました。 [25]
TypeScript 4.0は2020年8月20日にリリースされました。 [26] 4.0では互換性を破る変更は導入されていませんが、カスタム JSX ファクトリーや可変長タプル型などの言語機能が追加されました。 [26]
TypeScript 5.0は2023年3月16日にリリースされ、デコレータのサポートが含まれていました。 [27]
2025年3月11日、Anders HejlsbergはTypeScriptブログで、チームがTypeScriptコンパイラの Go言語への移植に取り組んでおり、今年後半にTypeScriptバージョン7.0としてリリースする予定であることを発表しました。10倍の 高速化 が期待されています 。 [28]
デザイン
TypeScriptは、マイクロソフトとその外部顧客の両方において、大規模なアプリケーションを開発するためのJavaScriptの欠点から生まれました。 [29] 複雑なJavaScriptコードを扱う際の課題から、言語コンポーネントの開発を容易にするカスタムツールの需要が高まりました。 [30]
開発者たちは、 ECMAScript (ES) 標準とそのエコシステム との互換性を損なわないソリューションを求めていました。そこで 、型注釈とクラス(TypeScriptファイル)を含むJavaScriptのスーパーセットを、標準のECMAScript 5コードに変換する コンパイラが開発されました。TypeScriptクラスは、当時提案されていたECMAScript 6クラス仕様に基づいており、 プロトタイプ継承の 記述の冗長性とエラー発生率を低減しました。また、型注釈によって IntelliSense が有効化され、ツールも改善されました。
特徴
TypeScript は JavaScript に次の構文拡張を追加します。
構文的には、TypeScriptは JScript .NET と非常によく似ています。JScript .NETはECMA-262言語標準のMicrosoftによる別の実装で、静的型付けと、クラス、継承、インターフェース、名前空間といった従来のオブジェクト指向言語機能のサポートが追加されています。その他のTypeScriptの影響を受けたのは、 Java と C# です。
JavaScriptとの互換性
TypeScriptはJavaScriptのスーパーセットであるため、既存のJavaScriptをTypeScriptに適合させることができ、TypeScriptプログラムはJavaScriptをシームレスに利用できます。コンパイラはECMAScriptバージョン5以降のすべての言語をターゲットにすることができ、クラスやアロー関数などの最新機能を古いバージョンにトランスパイルします。
TypeScriptを使用すると、既存のJavaScriptコードを使用したり、一般的なJavaScriptライブラリを組み込んだり、他のJavaScriptからTypeScriptで生成されたコードを呼び出したりすることができます。 [32] これらのライブラリの型宣言は通常、ソースコードに含まれていますが、必要に応じて個別に宣言またはインストールすることもできます。
コンパイラ
TypeScriptコンパイラは TypeScriptで記述されて tscいます 。そのため、通常のJavaScriptにコンパイルでき、任意のJavaScriptエンジン(ブラウザなど)で実行できます。コンパイラパッケージには、コンパイラを実行できるスクリプトホストがバンドルされています。また、 Node.jsをホストとして使用する
Node.jsパッケージとしても利用可能です。
コンパイラは特定のエディションの ECMAScript (従来のブラウザ互換性のための ECMAScript 5 など) を ターゲットに できますが、デフォルトでは最新の標準に合わせてコンパイルされます。
IDEとエディターのサポート
プラグインを 使用すると 、 TypeScriptは Grunt(grunt-ts [38] )、 Apache Maven (TypeScript Mavenプラグイン [39] )、Gulp(gulp-typescript [40] )、 Gradle (TypeScript Gradleプラグイン [41] )などのビルド自動化ツールと統合できます 。
TSLint [42] はTypeScriptコードをスキャンし、一連の標準とガイドラインへの準拠を確認します。JavaScriptの標準リンターである ESLint も、コミュニティプラグインを介してTypeScriptをある程度サポートしていました。しかし、ESLintはTypeScriptの言語サービスを活用できないため、特定の形式のセマンティックリンティングとプログラム全体の分析ができませんでした。 [43] 2019年初頭、TSLintチームはリンターを廃止し typescript-eslint、TSLint、ESLint、TypeScriptチームの共同作業であるに切り替え、パフォーマンス、コミュニティの結束、開発者のアクセシビリティを向上させるためにリンティングをESLintの傘下に統合することを発表しました。 [44]
リリース履歴
伝説:
サポートされていません
サポートされている
最新バージョン
プレビュー版
将来のバージョン
参照
参考文献
引用
^ “TypeScript”. CodePlex . 2015年4月3日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ “リリース 5.9”. 2025年8月1日. 2025年 8月9日 閲覧 。
^ “Type Compatibility”. TypeScript . 2018年3月12日時点のオリジナルよりアーカイブ 。 2018年 3月21日 閲覧。
^ 「F#の初期の歴史」 (PDF) 。 2024年8月9日時点のオリジナルから アーカイブ (PDF) 。 2024年 2月5日 閲覧 。TypeScript はF#から直接影響を受けています。TypeScriptの創始者の一人であるLuke Hobanは、F# 2.0の開発直後にTypeScript(当時はStradaと呼ばれていました)の開発を開始しました。最近、彼はTypeScriptの設計初期段階におけるF#の影響について言及しました[Hoban 2017]。
^ Nelson, Gary (2020年4月28日). 「ActionScriptがTypeScriptを予見していた経緯」. Medium . 2024年8月9日時点のオリジナルよりアーカイブ 。 2022年 7月9日 閲覧。
^ Bright, Peter (2012年10月3日). 「Microsoft TypeScript:必要なJavaScriptか、それとも問題を探している解決策か?」 Ars Technica . Condé Nast . 2018年10月9日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ “TypeScript Programming with Visual Studio Code”. code.visualstudio.com . 2022年9月22日時点のオリジナルよりアーカイブ 。 2019年 2月12日 閲覧。
^ "borisyankov/DefinitelyTyped". GitHub . 2015年11月1日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Foley, Mary Jo (2012年10月1日). 「Microsoft、JavaScriptのスーパーセットであるTypeScriptを発表」 ZDNet . CBS Interactive . 2014年11月13日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ Somasegar, S. (2012年10月1日). 「TypeScript: アプリケーションスケールでのJavaScript開発」. Somasegarのブログ . Microsoft. 2017年9月26日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ Baxter-Reynolds, Matt (2012年10月1日). 「Microsoft TypeScript: C#の父はJavaScriptの暴政から私たちを救えるか?」 ZDNet . 2014年8月3日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ Jackson, Joab (2012年10月1日). 「Microsoft、大規模開発向けにJavascriptを強化」. CIO . IDG Enterprise . 2013年12月17日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ 「Microsoft、大規模開発向けにJavaScriptを強化」 InfoWorld . IDG . 2012年10月1日. 2013年5月31日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Turner, Jonathan (2014年4月2日). 「TypeScript 1.0 を発表」. TypeScript言語チームブログ . Microsoft. 2015年9月5日時点のオリジナルよりアーカイブ 。 2021年 10月20日 閲覧。
^ de Icaza, Miguel (2012年10月1日). 「TypeScript: 第一印象」. 2019年2月24日時点のオリジナルよりアーカイブ 。 2012年 10月12日 閲覧。 しかし、TypeScriptはUnix開発者にとって、強い型付け言語の価値の半分、つまり強い型付けしか提供していません。インテリセンス、コード補完、リファクタリングは、Windows版Visual Studio Professionalユーザーのみが利用できるツールです。Eclipse、MonoDevelop、Emacsでは、これらの言語機能はサポートされていません。
^ 「Microsoft TypeScript:C#の父はJavaScriptの専制から私たちを救えるか?」 ZDNet 2012年10月1日。2014年8月3日時点のオリジナルよりアーカイブ。 2012年 10月12日 閲覧 。 そして、これはかなり大きな間違いだと思います。Windows以外で動作するWebアプリを開発しているなら、おそらくMacを使っていて、Visual Studioを使っていないでしょう。IntelliSenseを使うにはVisual Studioプラグインが必要です。Visual Studioなしで使えるのは強い型付けだけです。IntelliSenseによる生産性向上のメリットは得られません。
^ 「TypeStrong: 必要な唯一のTypeScriptパッケージ」 GitHub 。2018年12月19日時点のオリジナルよりアーカイブ 。 2016年 7月21日 閲覧。
^ Hillar, Gastón (2013年5月14日). 「Visual Studio 2012でTypeScriptを使う」. Dr. Dobb's Journal . 2018年9月29日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ “TypeScript 0.9 が新コンパイラとジェネリックのサポートとともに登場”. The Register . 2013年6月18日. 2018年3月11日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Hejlsberg, Anders (2014年4月2日). 「TypeScript」. Channel 9. Microsoft. 2015年5月25日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Jackson, Joab (2014年2月25日). 「Microsoft TypeScript graduates to Visual Studio」. PC World . IDG . 2016年3月11日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Turner, Jonathan (2014年7月21日). 「新しいコンパイラとGitHubへの移行」. TypeScript言語チームのブログ . Microsoft. 2014年7月22日時点のオリジナルよりアーカイブ。 2015年 4月26日 閲覧 。
^ Bright, Peter (2016年9月22日). 「TypeScript、Microsoftの大規模アプリケーション向けJavaScript、バージョン2.0に到達」 Ars Technica . Condé Nast . 2018年12月21日時点のオリジナルよりアーカイブ。 2016年 9月22日 閲覧 。
^ “Announcement TypeScript 3.0”. 2018年7月30日. 2020年5月30日時点のオリジナルよりアーカイブ。 2020年 3月16日 閲覧 。
^ “TypeScript 3.0”. 2018年7月30日. 2020年6月6日時点のオリジナルよりアーカイブ。 2020年 3月16日 閲覧 。
^ ab “Announcement TypeScript 4.0”. TypeScript . 2020年8月20日. 2024年8月9日時点のオリジナルよりアーカイブ。 2020年 10月30日 閲覧 。
^ “Documentation – TypeScript 5.0”. www.typescriptlang.org . 2024年8月9日時点のオリジナルよりアーカイブ 。 2023年 5月18日 閲覧。
^ Hejlsberg, Anders (2025年3月11日). 「10倍高速なTypeScript」. TypeScript . 2025年 3月11日 閲覧 。
^ Hejlsberg, Anders (2012年10月5日). 「What is TypeScript and why with Anders Hejlsberg」. www.hanselminutes.com. 2018年12月27日時点のオリジナルよりアーカイブ 。 2014年 1月15日 閲覧。
^ Somasegar, S. (2012年10月1日). 「TypeScript: アプリケーションスケールでのJavaScript開発」. msdn.com. 2015年4月22日時点のオリジナルよりアーカイブ 。 2013年 11月27日 閲覧。
^ “Documentation – TypeScript 5.2”. www.typescriptlang.org . 2024年8月9日時点のオリジナルよりアーカイブ。 2023年 11月9日 閲覧 。
^ “Welcome to TypeScript”. typescriptlang.org . Microsoft . 2018年3月10日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ Bloch, Olivier (2012年10月1日). 「Sublime Text、Vi、Emacs: TypeScript対応!」 Microsoft . 2012年10月29日時点のオリジナルよりアーカイブ 。 2012年 10月28日 閲覧。
^ “WebStorm 6のTypeScriptサポート”. JetBrains. 2013年2月27日. 2016年6月2日時点のオリジナルよりアーカイブ。 2013年 4月20日 閲覧 。
^ 「ReSharper 8.1のTypeScriptサポート」JetBrains、2013年10月28日。2014年2月2日時点のオリジナルよりアーカイブ 。 2014年 1月21日 閲覧。
^ 「ReSharper: JetBrainsによる.NET開発者向けのVisual Studio拡張機能」 JetBrains 。
^ “atom-typescript”. Atom . 2016年10月4日時点のオリジナルよりアーカイブ。 2020年 1月9日 閲覧 。
^ “TypeStrong/grunt-ts”. GitHub . 2020年4月16日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ "ppedregal/typescript-maven-plugin". GitHub . 2018年6月11日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ “ivogabe/gulp-typescript”. GitHub . 2018年6月11日時点のオリジナルよりアーカイブ 。 2017年 7月14日 閲覧。
^ “sothmann/typescript-gradle-plugin”. GitHub . 2018年6月11日時点のオリジナルよりアーカイブ 。 2015年 4月26日 閲覧。
^ “TSLint”. palantir.github.io . 2022年12月21日時点のオリジナルよりアーカイブ 。 2019年 2月11日 閲覧。
^ Palantir (2019年2月19日). 「TSLint in 2019」. Medium . 2019年 4月24日 閲覧 。
^ 「TSLintはTypescript-eslintのサポートに注力するため非推奨」 InfoQ . 2024年8月9日時点のオリジナルよりアーカイブ 。 2019年 4月24日 閲覧。
出典
「Webclipse: Eclipseプラグイン」 Wayback Machine Genuitec、2016年12月16日アーカイブ。2016年11月9日閲覧。
「Webclipse 製 Angular IDE: スタンドアロン IDE」 Wayback Machine Genuitec に 2016 年 11 月 10 日アーカイブ。2016 年 11 月 9 日閲覧。
外部リンク