インターネットは基本的に JavaScript、HTML、CSS で動作します。残念ながら、JavaScript は大規模なアプリケーションの開発には適していません。ここで TypeScript が活躍します。このコーディング言語はJavaScript と互換性があり、非常に広範なアプリケーションの開発も可能にします。
JavaScript とTypeScriptについての重要な事実を要約し、その違いについて説明しました。
JavaScriptとは何ですか?
JavaScript は、由緒ある Netscape Navigator のプログラミング言語として誕生しました。 ブレンダン・アイヒは1995 年に 10 日間でこのプログラミング言語のプロトタイプを作成しました。アイヒ氏が 2008 年のInfoworld での米国の同僚へのインタビューで明らかにしたように、JavaScript は最初は「Mocha」、次に「LiveScript」と呼ばれ、Netscape と Sun Microsystems 間のライセンス契約後の 1995 年 12 月に最終的に JavaScript と名付けられました。 Java とJavaScriptの間には顕著な違いがありますが、 Javaと JavaScript の命名規則の類似性は、これまでしばしば誤解や混乱を引き起こしてきました。 JavaScript は長年にわたって大幅に進化し、現在ではすべての最新の Web ブラウザーでサポートされています。
Netscape Navigator用の JavaScript の導入に続いて、Netscape Enterprise Server および Microsoft IIS 用のバリアントが比較的早く導入されました。約 13 年後、Ryan Dahl はついにNode.js を導入しました。これは、ブラウザーやサーバーの種類に関係なく動作する JavaScript 用のオープンソースのクロスプラットフォーム ランタイム環境です。
JavaScript を使用したコーディング

JavaScript は、多くのパラダイムを備えたプログラミング言語です。JavaScript では、C 言語ファミリーと同様に中括弧とセミコロンが使用されます。動的型付けが弱く、ジャストインタイムで解釈またはコンパイルされます。一般に、JavaScript はシングルスレッドですが、マルチスレッドを可能にする Web Workers API があります。 「イベント」、「非同期関数呼び出し」、「コールバック」もあります。
C++、Java、C# で使用される「クラス構文」とは対照的に、JavaScript はプロトタイプを使用したオブジェクト指向ソフトウェア開発をサポートします。ただし、2015 年の JavaScript ES6 リリース以降、これも搭載されています。 JavaScript は、「クロージャ」、「再帰」、「ラムダ」(匿名関数) などの関数型プログラミングもサポートしています。
JavaScript ES6 より前には、末尾呼び出しの最適化はありませんでした。これは、「strict モード」 (「use strict」) がアクティブ化されている場合に可能になりました。実装はブラウザによって異なります。 「厳密モード」は JavaScript のセマンティクスを変更し、一部の「サイレント エラー」が「スロー エラー」になるようにします。
とても混乱します、、 #javascriptmeme #SoftwareEngineering #webdeveloper pic.twitter.com/yz4x3d00HF
— ダニー・ガルシア |レンダー ALT (@DannyGarciaDEV) 2023 年 3 月 24 日
JavaScript エコシステム
JavaScript API は数多くあります。ブラウザーによって提供されるものもあれば、サードパーティのインターフェイスであるものもあります。クライアント、サーバー、デスクトップ用のさまざまなAPIと、いくつかの異なる環境をサポートする API があります。 JavaScript のブラウザ インターフェイスには次のものが含まれます。

インターフェースからGoogle マップなどの完全なアプリケーションに至るまで、サードパーティ API が豊富にあります。その他には、JavaScript、HTML5、CSS ( jQuery ) を使用したソフトウェア開発を容易にするためのユーティリティなどがあります。特殊な目的のためのアプリケーション フレームワークも利用できます。たとえば、Express を使用すると、Node.js で Web およびモバイル アプリケーション サーバーを開発できます。
他にもさまざまな JavaScript モジュールがあり、合計で 300,000 を超えます。膨大な数を処理できるようにするために、 npm (Node.js の標準) などのパッケージ マネージャーを使用することをお勧めします。これに代わるものとしては、たとえば、Facebook によって開発されたYarnなどの同様のスタイルのツールがあります。
一方、 Webpack はJavaScript モジュールを静的なブラウザ アセットにバンドルしており、 Browserify を使用すると、ソフトウェア開発者はブラウザで使用するためにコンパイルされた Node.js スタイルのモジュールを作成できます。一方、 Grunt は、 gulp (これも「ストリーミング ビルド システム」) と同様、ファイル指向 JavaScript の「タスク ランナー」です。
「リンター」は、JavaScript コードがコンパイルなしで確実に実行されるようにするために使用されます。この用語は、かつて Unix の標準ツールであった C プログラミング言語の Lint ツールに基づいています。 JavaScript の「lintern」には次のものが含まれます。

これらは、プログラム コードに変更が加えられたときに「タスク ランナー」または IDE を使用して自動化できます。
「トランスパイラー」は、CoffeeScript や TypeScript などの他のプログラミング言語を JavaScript に翻訳するため、または最新の JavaScript コード (ES2015 など) を (ほぼ) すべてのブラウザーで実行できるように単純化するために使用されます。最新の JavaScript で最も一般的なトランスパイラーはBabelです。

TypeScriptとは何ですか?
TypeScript は、 「プレーン」JavaScript にコンパイルされる JavaScript の型付きスーパーカテゴリーを表します。オープンソースのTypeScript コンパイラーは、Node.js パッケージとしてインストールできます。次の開発環境は TypeScript をサポートしています。
-
Visual Studio 2017
-
Visual Studio 2019
-
Visual Studio 2022
-
ウェブストーム
-
崇高なテキスト
-
原子
-
日食
-
Emacs
-
ヴィム
TypeScript は、オプションの型、クラス、モジュールを JavaScript に追加し、さまざまなコード行で JavaScript アプリケーション用のツールをサポートします。ブラウザ、ホスト、オペレーティング システムは何の役割も果たしません。 「タイプ」を使用することにより、ソフトウェア開発者は JavaScript アプリケーションを開発する際に、「静的チェック」や「コード リファクタリング」などの生産性の高い開発ツールや手法を使用する機会が得られます。

これらの「タイプ」はオプションですが、いくつかのコメントを付けることで、プログラム コードの「静的検証」に関して大きな違いを生む可能性があります。さらに、「タイプ」を使用してソフトウェア コンポーネント間のインターフェイスを定義し、既存の JavaScript ライブラリの動作についての洞察を得ることができます。可能な限り最も堅牢なソフトウェア コンポーネントを作成するために、TypeScript は最新の JavaScript 機能をサポートしています。
TypeScript のものだけです😹 #programming #programminghumor #programmingmemes #meme #javascript #TypeScript pic.twitter.com/QCrds3Y38K
— ファディル・サヒール (@fadhilsaheer) 2022 年 8 月 13 日
TypeScriptによるソフトウェア開発
TypeScript は JavaScript を受け入れますが、コンパイル時、クラス、モジュールに関する「型アノテーション」と「型チェック」という追加の可能性を提供します。これは、ソフトウェアをできるだけ確実に実行したい場合に非常に役立ちます。単純な JavaScript では、実行時にエラーが発生するだけで、エラーを含むパスに到達した場合にのみエラーが発生します。チュートリアル「 5 分でわかる TypeScript 」では利点が説明されており、「 JavaScript からの移行」では既存の JavaScript プロジェクトをアップグレードする方法について詳しく説明されています。
Microsoft の長年の開発者である Anders Hejlsberg は、TypeScript の使用についてさらに興味深い洞察に満ちた洞察を提供しています。
