TypeScriptTS)は、JavaScript静​​的型付けとオプションの型注釈を追加する高水準 プログラミング言語です。大規模アプリケーションの開発向けに設計されており、 JavaScriptにトランスパイルされます[6] Microsoftによって開発され、Apache License 2.0に基づいて無料のオープンソースソフトウェアとしてリリースされています

TypeScriptは、クライアントサイドサーバーサイドの両方で実行されるJavaScriptアプリケーションの開発に使用できますReact.jsNode.jsDeno 、 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 #のリードアーキテクトであり、 DelphiTurbo Pascalの開発者でもあるAnders HejlsbergがTypeScriptの開発に携わりました。[9] [10] [11] [12]

歴史

TypeScriptは、マイクロソフトで2年間の社内開発を経て、2012年10月にバージョン0.8で一般公開されました。[13] [14]最初の一般公開後すぐに、ミゲル・デ・イカザはこの言語を賞賛しましたが、当時LinuxmacOSでは利用できなかったMicrosoft Visual Studio以外に成熟した統合開発環境(IDE)のサポートが不足していると批判しました。[15] [16] 2021年4月現在、 EmacsVimWebStormAtom [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の影響を受けたのは、JavaC#です。

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とエディターのサポート

  • マイクロソフトはVisual Studio 2012およびWebMatrix用のプラグイン、 Visual Studio 2013およびVisual Studio 2015での完全な統合サポート、およびEmacsおよびVimの基本的なテキストエディターサポートを提供しています[33]
  • Visual Studio Code は、他のいくつかの言語に加えて TypeScript をサポートし、デバッグやインテリジェントなコード補完などの機能を提供します。
  • alm.tools は、TypeScript、ReactJS、TypeStyle を使用して構築された TypeScript 用のオープンソース クラウド IDE です。
  • JetBrainsは、 PhpStorm 6、WebStorm 6、IntelliJ IDEAなどのIntelliJプラットフォーム上に構築されたIDEで、コード補完、リファクタリング、デバッグ機能を備えたTypeScriptをサポートしています[34]また、Visual Studioアドインと拡張機能であるReSharper 8.1でもサポートされています。[35] [36]
  • Atomには、コード補完、ナビゲーション、フォーマット、高速コンパイルをサポートするTypeScriptプラグインがあります。[37]
  • オンラインCloud9 IDECodenvy はTypeScript をサポートしています。
  • NetBeans IDE用のプラグインが利用可能です
  • Eclipse IDE (バージョン Kepler)用のプラグインが利用可能です。
  • TypEcs はEclipse IDEで利用できます。
  • クロスプラットフォーム クラウド IDE Codeanywhere はTypeScript をサポートしています。
  • Webclipse TypeScript とAngular 2を開発するために設計された Eclipse プラグイン
  • Angular IDE 統合ターミナル サポートを備えた、TypeScript および Angular 2 アプリケーションを開発するための npm 経由で利用できるスタンドアロン IDE。
  • Tide – Emacs用の TypeScript インタラクティブ開発環境

ビルド自動化ツールとの統合

プラグインを使用すると 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]

リリース履歴

伝説:
サポートされていません
サポートされている
最新バージョン
プレビュー版
将来のバージョン

参照

参考文献

引用

  1. ^ “TypeScript”. CodePlex . 2015年4月3日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  2. ^ “リリース 5.9”. 2025年8月1日. 2025年8月9日閲覧
  3. ^ “Type Compatibility”. TypeScript . 2018年3月12日時点のオリジナルよりアーカイブ2018年3月21日閲覧。
  4. ^ 「F#の初期の歴史」(PDF) 。 2024年8月9日時点のオリジナルからアーカイブ(PDF) 。 2024年2月5日閲覧。TypeScriptはF#から直接影響を受けています。TypeScriptの創始者の一人であるLuke Hobanは、F# 2.0の開発直後にTypeScript(当時はStradaと呼ばれていました)の開発を開始しました。最近、彼はTypeScriptの設計初期段階におけるF#の影響について言及しました[Hoban 2017]。
  5. ^ Nelson, Gary (2020年4月28日). 「ActionScriptがTypeScriptを予見していた経緯」. Medium . 2024年8月9日時点のオリジナルよりアーカイブ2022年7月9日閲覧。
  6. ^ Bright, Peter (2012年10月3日). 「Microsoft TypeScript:必要なJavaScriptか、それとも問題を探している解決策か?」Ars Technica . Condé Nast . 2018年10月9日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  7. ^ “TypeScript Programming with Visual Studio Code”. code.visualstudio.com . 2022年9月22日時点のオリジナルよりアーカイブ2019年2月12日閲覧。
  8. ^ "borisyankov/DefinitelyTyped". GitHub . 2015年11月1日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  9. ^ Foley, Mary Jo (2012年10月1日). 「Microsoft、JavaScriptのスーパーセットであるTypeScriptを発表」ZDNet . CBS Interactive . 2014年11月13日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  10. ^ Somasegar, S. (2012年10月1日). 「TypeScript: アプリケーションスケールでのJavaScript開発」. Somasegarのブログ. Microsoft. 2017年9月26日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  11. ^ Baxter-Reynolds, Matt (2012年10月1日). 「Microsoft TypeScript: C#の父はJavaScriptの暴政から私たちを救えるか?」ZDNet . 2014年8月3日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  12. ^ Jackson, Joab (2012年10月1日). 「Microsoft、大規模開発向けにJavascriptを強化」. CIO . IDG Enterprise . 2013年12月17日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  13. ^ 「Microsoft、大規模開発向けにJavaScriptを強化」InfoWorld . IDG . 2012年10月1日. 2013年5月31日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  14. ^ Turner, Jonathan (2014年4月2日). 「TypeScript 1.0 を発表」. TypeScript言語チームブログ. Microsoft. 2015年9月5日時点のオリジナルよりアーカイブ2021年10月20日閲覧。
  15. ^ de Icaza, Miguel (2012年10月1日). 「TypeScript: 第一印象」. 2019年2月24日時点のオリジナルよりアーカイブ2012年10月12日閲覧。しかし、TypeScriptはUnix開発者にとって、強い型付け言語の価値の半分、つまり強い型付けしか提供していません。インテリセンス、コード補完、リファクタリングは、Windows版Visual Studio Professionalユーザーのみが利用できるツールです。Eclipse、MonoDevelop、Emacsでは、これらの言語機能はサポートされていません。
  16. ^ 「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による生産性向上のメリットは得られません。
  17. ^ 「TypeStrong: 必要な唯一のTypeScriptパッケージ」GitHub。2018年12月19日時点のオリジナルよりアーカイブ2016年7月21日閲覧。
  18. ^ Hillar, Gastón (2013年5月14日). 「Visual Studio 2012でTypeScriptを使う」. Dr. Dobb's Journal . 2018年9月29日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  19. ^ “TypeScript 0.9 が新コンパイラとジェネリックのサポートとともに登場”. The Register . 2013年6月18日. 2018年3月11日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  20. ^ Hejlsberg, Anders (2014年4月2日). 「TypeScript」. Channel 9. Microsoft. 2015年5月25日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  21. ^ Jackson, Joab (2014年2月25日). 「Microsoft TypeScript graduates to Visual Studio」. PC World . IDG . 2016年3月11日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  22. ^ Turner, Jonathan (2014年7月21日). 「新しいコンパイラとGitHubへの移行」. TypeScript言語チームのブログ. Microsoft. 2014年7月22日時点のオリジナルよりアーカイブ。 2015年4月26日閲覧
  23. ^ Bright, Peter (2016年9月22日). 「TypeScript、Microsoftの大規模アプリケーション向けJavaScript、バージョン2.0に到達」Ars Technica . Condé Nast . 2018年12月21日時点のオリジナルよりアーカイブ。 2016年9月22日閲覧
  24. ^ “Announcement TypeScript 3.0”. 2018年7月30日. 2020年5月30日時点のオリジナルよりアーカイブ。 2020年3月16日閲覧
  25. ^ “TypeScript 3.0”. 2018年7月30日. 2020年6月6日時点のオリジナルよりアーカイブ。 2020年3月16日閲覧
  26. ^ ab “Announcement TypeScript 4.0”. TypeScript . 2020年8月20日. 2024年8月9日時点のオリジナルよりアーカイブ。 2020年10月30日閲覧
  27. ^ “Documentation – TypeScript 5.0”. www.typescriptlang.org . 2024年8月9日時点のオリジナルよりアーカイブ2023年5月18日閲覧。
  28. ^ Hejlsberg, Anders (2025年3月11日). 「10倍高速なTypeScript」. TypeScript . 2025年3月11日閲覧
  29. ^ Hejlsberg, Anders (2012年10月5日). 「What is TypeScript and why with Anders Hejlsberg」. www.hanselminutes.com. 2018年12月27日時点のオリジナルよりアーカイブ2014年1月15日閲覧。
  30. ^ Somasegar, S. (2012年10月1日). 「TypeScript: アプリケーションスケールでのJavaScript開発」. msdn.com. 2015年4月22日時点のオリジナルよりアーカイブ2013年11月27日閲覧。
  31. ^ “Documentation – TypeScript 5.2”. www.typescriptlang.org . 2024年8月9日時点のオリジナルよりアーカイブ。 2023年11月9日閲覧
  32. ^ “Welcome to TypeScript”. typescriptlang.org . Microsoft . 2018年3月10日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  33. ^ Bloch, Olivier (2012年10月1日). 「Sublime Text、Vi、Emacs: TypeScript対応!」Microsoft . 2012年10月29日時点のオリジナルよりアーカイブ2012年10月28日閲覧。
  34. ^ “WebStorm 6のTypeScriptサポート”. JetBrains. 2013年2月27日. 2016年6月2日時点のオリジナルよりアーカイブ。 2013年4月20日閲覧
  35. ^ 「ReSharper 8.1のTypeScriptサポート」JetBrains、2013年10月28日。2014年2月2日時点のオリジナルよりアーカイブ2014年1月21日閲覧。
  36. ^ 「ReSharper: JetBrainsによる.NET開発者向けのVisual Studio拡張機能」JetBrains
  37. ^ “atom-typescript”. Atom . 2016年10月4日時点のオリジナルよりアーカイブ。 2020年1月9日閲覧
  38. ^ “TypeStrong/grunt-ts”. GitHub . 2020年4月16日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  39. ^ "ppedregal/typescript-maven-plugin". GitHub . 2018年6月11日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  40. ^ “ivogabe/gulp-typescript”. GitHub . 2018年6月11日時点のオリジナルよりアーカイブ2017年7月14日閲覧。
  41. ^ “sothmann/typescript-gradle-plugin”. GitHub . 2018年6月11日時点のオリジナルよりアーカイブ2015年4月26日閲覧。
  42. ^ “TSLint”. palantir.github.io . 2022年12月21日時点のオリジナルよりアーカイブ2019年2月11日閲覧。
  43. ^ Palantir (2019年2月19日). 「TSLint in 2019」. Medium . 2019年4月24日閲覧
  44. ^ 「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 日閲覧。
  • 公式サイト
  • GitHubの TypeScript