Typescript-variables
TypeScript-変数
定義により、変数は値を格納する「メモリ内の名前付きスペース」です。 つまり、プログラムの値のコンテナとして機能します。 TypeScript変数はJavaScriptの命名規則に従う必要があります-
- 変数名にはアルファベットと数字を含めることができます。
- アンダースコア(_)とドル($)記号を除き、スペースと特殊文字を含めることはできません。 *変数名は数字で始めることはできません。
変数は、使用する前に宣言する必要があります。* var *キーワードを使用して変数を宣言します。
TypeScriptでの変数宣言
TypeScriptで変数を宣言するための型構文は、変数名の後にコロン(:)を含め、その後にその型を含めることです。 JavaScriptと同様に、 var キーワードを使用して変数を宣言します。
あなたが変数を宣言するとき、あなたは4つのオプションがあります-
- 1つのステートメントでそのタイプと値を宣言します。
- タイプを宣言しますが、値は宣言しません。 この場合、変数は未定義に設定されます。
- 値を宣言しますが、型は宣言しません。 変数の型は、割り当てられた値のデータ型に設定されます。
次の表は、前述の変数宣言の有効な構文を示しています-
S.No. | Variable Declaration Syntax & Description |
---|---|
1. |
変数には、string型の値が格納されます |
2. |
var name:string; 変数は文字列変数です。 変数の値はデフォルトで未定義に設定されています |
3. |
var name = ”mary” 変数の型は、値のデータ型から推測されます。 ここでは、変数は文字列型です |
4. |
var name; 変数のデータ型はanyです。 その値はデフォルトで未定義に設定されています。 |
例:TypeScriptの変数
コンパイル時に、次のJavaScriptコードが生成されます。
上記のプログラムの出力は以下のとおりです-
同じ型ではない変数に値を割り当てようとすると、TypeScriptコンパイラはエラーを生成します。 したがって、TypeScriptはストロングタイピングに従います。 強い型付け構文により、代入演算子(=)の両側で指定された型が同じであることが保証されます。 これは、次のコードがコンパイルエラーになる理由です-
TypeScriptでの型アサーション
TypeScriptでは、変数をある型から別の型に変更できます。 TypeScriptは、このプロセスを_Type Assertion_と呼びます。 構文は、ターゲットタイプを<>記号の間に配置し、変数または式の前に配置します。 次の例は、この概念を説明します-
例
Visual Studio Codeのタイプアサーションステートメントにマウスポインターを合わせると、変数のデータタイプの変更が表示されます。 基本的に、SがTのサブタイプであるか、TがSのサブタイプである場合、タイプSからTへのアサーションが成功します。
「型キャスト」と呼ばれない理由は、一般に、キャストは何らかのランタイムサポートを意味するのに対し、「型アサーション」は純粋にコンパイル時の構成であり、コードのコンパイラーへのヒントを提供する方法であるためです。分析される。
コンパイル時に、次のJavaScriptコードが生成されます。
それは次の出力を生成します-
TypeScriptでの推論された入力
Typescriptが強く型付けされているという事実を考えると、この機能はオプションです。 TypeScriptは、変数の動的な型指定も推奨します。 つまり、TypeScriptでは、型なしで変数を宣言することをお勧めします。 このような場合、コンパイラーは、割り当てられた値に基づいて変数のタイプを決定します。 TypeScriptは、コード内の変数の最初の使用法を見つけ、最初に設定された型を決定し、コードブロックの残りの部分でこの変数に対して同じ型を想定します。
同じことは、次のコードスニペットで説明されています-
例:推測された入力
上記のコードスニペットで-
- コードは変数を宣言し、その値を2に設定します。 変数宣言ではデータ型が指定されていないことに注意してください。 したがって、プログラムは推論型付けを使用して変数のデータ型を決定します。つまり、変数が設定される最初の値の型を割り当てます。 この場合、 num はタイプ番号に設定されます。
- コードが変数の値を文字列に設定しようとしたとき。 変数の型が既に数値に設定されているため、コンパイラはエラーをスローします。
それは次の出力を生成します-
TypeScript変数スコープ
変数のスコープは、変数が定義される場所を指定します。 プログラム内の変数の可用性は、そのスコープによって決まります。 TypeScript変数は、次のスコープにすることができます-
- グローバルスコープ-グローバル変数はプログラミング構造の外側で宣言されます。 これらの変数には、コード内のどこからでもアクセスできます。
- クラススコープ-これらの変数は*フィールド*とも呼ばれます。 フィールドまたはクラス変数は、クラス内でメソッドの外部で宣言されます。 これらの変数は、クラスのオブジェクトを使用してアクセスできます。 フィールドは静的にすることもできます。 静的フィールドには、クラス名を使用してアクセスできます。
- ローカルスコープ-ローカル変数は、名前が示すように、メソッド、ループなどの構造内で宣言されます。 ローカル変数は、宣言されている構造内でのみアクセス可能です。
次の例は、TypeScriptの変数スコープを示しています。
例:可変スコープ
トランスパイルすると、次のJavaScriptコードが生成されます-
それは次の出力を生成します-
メソッドの外部でローカル変数にアクセスしようとすると、コンパイルエラーが発生します。