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 タイプに関連しています。

推薦する

Access_Tokenの統合管理を実現するミニプログラム開発

目次TOKEN タイマーリフレッシュ2. access_tokenの内部設計2.1 access_t...

Linux マルチスレッドにおけるフォークとミューテックス ロック プロセスの例

目次質問: 1. 最初の試み2. 合理的な分析3. 問題解決(1) pthread_join()の使...

MySQLデータ内の多数の改行と復帰に対する解決策

目次問題を見つける1. 改行と復帰を削除する方法2. SELECTクエリで「改行と復帰」を無視する方...

Presto をインストールし、Docker で Hive を接続する詳細なプロセス

1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...

MySQLトランザクションが効率に与える影響の分析と概要

1. データベース トランザクションによりデータベースのパフォーマンスが低下します。データの一貫性と...

JavaScript のフラット配列をツリー構造に変換する例

目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...

4つの柔軟なScssコンパイル出力スタイル

多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...

uni-app WeChatアプレット認証ログイン実装手順

目次1. appIDの申請と設定1. appidの取得方法2. AppIDの設定2. 基本的なユーザ...

Ubuntu 18.04 (コミュニティ エディション) に Docker CE をインストールする方法

古いバージョンをアンインストールする以前に古いバージョンをインストールしたことがある場合は、まずそれ...

ホバープロンプトにはvue2+elementuiを使用する

Vue2+elementui のホバー プロンプトは、外部と内部に分かれています。内部のものは el...

Dockerコンテナのいくつかの保存方法の詳細な説明

目次前面に書かれた複数のストレージマウント方法1.バインドマウント2. 巻数3.tmpfsマウントス...

Windows 2019 アクティベーション チュートリアル (Office2019)

数日前、Server2019の正式版がリリースされたことを知り、面白半分でインストールしてみることに...

Vue の vue.$set() メソッドのソースコード例の詳細な説明

Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

Docker で lnmp をデプロイする詳細な手順

目次Centosイメージを取得するCentos ベースの nginx コンテナを生成するCentos...