TypeScript とは何ですか?

TypeScript とは何ですか?

序文:

TypeScriptは、純粋なJavaScriptコードにコンパイルされるJavaScriptのスーパーセットです。

では、なぜTypeScript言語が登場したのでしょうか。主な理由は、JavaScript で多くの複雑なプロジェクトを開発できるようになったものの、JavaScript には信頼性が欠けているためです。JavaScript を使用する場合、コードの堅牢性を判断するために多くのビジネス ロジックを追加する必要があります。

TypeScript 、ブラウザ環境、Node.js 環境、またはECMAScript3以上のJavaScriptエンジンで実行できます。

1. JavaScriptの問題

JavaScript の主な問題は次のとおりです。

JavaScriptタイプの例外は実行時にのみ検出されます。

JavaScript関数の型があいまいなため、関数の最終的な機能に問題が発生する可能性があります。

次のように:

関数 sum(x, y){
  x + yを返す
}
合計(100, '100') // 100100


2. TypeScriptの利点

  • JavaScript動的型付けプログラミング言語です。いわゆる動的型とは、数値か文字列かを問わず、そのデータ型がコンパイル時に判明することを意味します。TypeScript TypeScript静的型付けプログラミング言語です。いわゆる静的型とは、書き込み時にデータ型が判明することを意味します。
数値を6とします。


変数num 、最初から最後までnumber型のみにすることができます。文字列が割り当てられると、例外がスローされます。

したがって、TypeScript の利点は次のとおりです。

  • 開発プロセス中にエラーを特定できるため、エラーの確認が容易になります。
  • TypeScriptはプログレッシブプログラミング言語です。構文がわからなくても、 JavaScriptと同じように使用できます。
  • これにより、開発プロセス中の不要な型チェックが削減されます。
  • 静的に型付けされたコードヒントは、静的に型付けされたコードヒントよりも優れています。
  • プロジェクトをリファクタリングするときに簡単になります。
  • 静的に型付けされたコードは、動的に型付けされたコードよりも意味がわかりやすく、読みやすいです。

3. TypeScriptの欠点

TypeScriptには利点ばかりではなく、欠点もありません。欠点は JavaScript と比較したものです。

詳細は以下の通りです。

  • JavaScriptと比較すると、TypeScript 自体に多くの概念が追加されています。たとえば、ジェネリックやインターフェースなどの概念です。
  • 開発に TypeScript を使用すると、短期的にはコストが増加しますが、長期的なメンテナンスが必要なプロジェクトの場合、 TypeScriptとメンテナンス コストを削減できます。
  • 一部のライブラリとは完全に統合されない可能性があります。

4. TypeScriptの動作環境

TypeScript Node.js環をベースに実行されるため、まず Node.js をインストールする必要があります。

Node.jsをインストールし、その他の操作を無視する

TypeScript をインストールするコマンドは次のとおりです。

npm インストール -g [email protected]


ここでは@でバージョン番号を指定しますが、バージョン番号を指定しないこともできます。

TypeScriptをインストールした後、 ts-nodeツールもインストールする必要があります。このツールをインストールすると、TS コードを直接実行できなくなります。実行する前に、TS コードを JavaScript にコンパイルする必要があります。

実行フローは以下のとおりです。

# TSコードをコンパイルする tsc demo.ts 
# コンパイル後、demo.jsファイルが作成され、それを実行できます。

node-tsツールをインストールすると、TS コードを直接実行できます。

具体的な手順は次のとおりです。

# 1. グローバルインストール npm install -g [email protected]
# 2. コードts-node demo.tsを実行します


インストール後のディレクトリは環境変数に含まれている必要があることに注意してください。そうでない場合はエラーが報告されます。

5. 範囲の問題

プロジェクト内の ts ファイルを実行するときに、異なるファイルに同じ変数名が存在すると、例外がスローされます。

サンプルコードは次のとおりです。

アット

str: 文字列 = 'Hello World' とします

b.ts

let str: string = '一碗の周'

この時、ブロックスコープ変数「str」は再宣言できないという例外が発生します。エディタがVScodeの場合は、変数名の上にマウスを乗せるとプロンプトが表示されます。

この問題を解決するには 2 つの方法があります。1 つ目は、各ファイルに個別のスコープを持たせるために、各ファイルに対して即時実行される関数 (匿名関数) を作成することです。

サンプルコードは次のとおりです。

(関数() {
  let str: string = '一碗の周'
}){}


2 番目の方法は、エクスポートを使用して現在のファイルをモジュールとしてエクスポートすることです。サンプルコードは次のとおりです。

let str: string = '一碗の周'

輸出 {}

TypeScript とは何かについての記事はこれで終わりです。TypeScript に関するその他のコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • TypeScriptの列挙型を詳しく説明する
  • 1つの記事でTypeScriptのデータ型について学ぶ
  • TypeScript 型推論
  • TypeScript 基本データ型
  • TypeScript の基本型の紹介

<<:  MySQL ツリー構造データベース テーブル設計

>>:  ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

推薦する

Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...

MySQL 8.0.11 のインストールと設定方法のグラフィックチュートリアル MySQL 8.0 の新しいパスワード認証方法

この記事では、参考までにMySQL8.0.11のインストールと設定方法、およびMySQL8.0の新し...

Centos Docker ブリッジ モードでホスト Redis サービスにアクセスできないというトラブルシューティングの経験

背景:以前、コンテナ内のホストが提供する Redis サービスにアクセスする必要があるプロジェクトを...

iframe src 割り当ての問題 (サーバー側)

今日この問題に遭遇しました。サーバー側でiframeのsrc値を再割り当てし、iframeにIDを追...

プロキシはVue3データの双方向バインディングの原理を実現します

目次1. proxy と Object.defineProperty の利点2. プロキシ監視オブジ...

ulとliの基本的な使用法の分析

ナビゲーション、少量のデータテーブル、中央揃え<!DOCTYPE html PUBLIC &q...

MacOS に MySQL 8.0 をインストールして MySQL にログインする方法

公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...

背景とリンクとして画像を書き込む方法(背景画像+リンク)

写真を背景にしてリンクを記載します。たとえば、ウェブサイトのロゴ画像などです。例: ポテトのロゴ画像...

Reactのコンテキストとプロパティの説明

目次1. 文脈1. 使用シナリオ2. 使用手順3. 結論2. 小道具の詳細1. 子供の財産2. 小道...

Uniapp は DingTalk スキャンコード ログイン サンプル コードを実装します

UniappにはDingTalk認証ログインがないため、この記事ではDingTalk QRコードログ...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

MySQL 8.0.11 圧縮バージョンを Windows 10 にインストールするための詳細なチュートリアル

最近コンピュータを再インストールした後、最新バージョンのみをインストールするという強迫観念に基づいて...

...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

Dockerコンテナがホストポートにアクセスできない場合の解決策

最近、仕事中に問題が発生しました。Docker コンテナがホストの redis にアクセスできず、t...