HOWTO · TypeScript

TypeScript で変数が文字列であるかどうかを確認する

TypeScript は、プリミティブ文字列型とオブジェクト文字列型の両方をサポートします。typeof および instanceof 演算子を使用して、指定された変数が文字列であるかどうかを確認できます。Object.prototype プロパティを使用して、オブジェクトのコンストラクタータイプを確認し、文字列を識別することもできます。

このページの内容

この記事では、TypeScript で変数が文字列であるかどうかを確認する方法について説明します。

TypeScript タイプ

TypeScript は、コンパイル時に型チェックが行われる JavaScript 言語のスーパーセットです。変数、関数、または引数が宣言されている場合は常に、TypeScript を使用して型を明示的に割り当てることができます。これは、エラーを事前に特定するのに役立ちます。

// variable declaration and assignment
let stringTypeVariable: string = 'Hello world';
let booleanTypeVariable: boolean = true;
let numberTypeVariable: number = 10;

// function declaration
function calculateSum(numOne: number, numTwo: number): number {
    return numOne + numTwo;
}

TypeScript の String タイプ

TypeScript 文字列型は文字のコレクションを保持します。これは、文字のシーケンスが一重引用符または二重引用符で囲まれているプリミティブデータ型です。

テキストデータは文字列型で保存できます。TypeScript に文字列を保存する方法は 2つあります。

  1. プリミティブ型として格納します
  2. オブジェクトインスタンスとして保存します

文字列をプリミティブ型として格納する

通常、プリミティブ文字列型は文字列リテラルを保持します。プリミティブ文字列は、オブジェクトインスタンスよりも推奨されます。

let stringTypeName: string = 'John Doe';
let stringTypeId: string = "User001";

文字列をオブジェクトインスタンスとして保存する

TypeScript は、追加のヘルパーメソッドでプリミティブ文字列型をラップする String オブジェクトインスタンスをサポートします。String オブジェクトインスタンスのプロトタイプチェーンには、String.prototype が含まれます。

let stringVal: String = new String('This is a String object');
let anotherStrVal: String = String('Another String object');

特定の変数が文字列を保持しているかどうかを確認する方法はいくつかあります。通常、typeof 演算子はプリミティブ文字列型をチェックするために使用され、instanceof 演算子は String オブジェクトインスタンスで使用できます。

それ以外に、Object.prototype プロパティを使用して、指定されたタイプが文字列であるかどうかを確認できます。

TypeScript で変数が文字列で typeof 演算子を使用してあるかどうかを確認する

typeof は、指定されたオペランドのデータ型を返す TypeScript 単項演算子です。

構文:

typeof <operand>

演算子は、オペランドのタイプを示す文字列を返します。

プリミティブ文字列 userName を作成しましょう。

let userName: string = 'Ricky hardy';

次に、typeof 演算子を使用して、userName 変数のデータ型を確認します。次のように、コンソールに出力してみましょう。

console.log(typeof userName);

出力:

string

したがって、次のように、typeof 演算子を使用して、条件付きコードフラグメント内のプリミティブ型の文字列をチェックできます。

if (typeof userName === 'string') {
    // logic to be executed when the type is a string
} else {
    // logic to be executed for non-string types
}

TypeScript で変数が文字列で instanceof 演算子を使用してあるかどうかを確認する

instanceof 演算子は、指定されたオブジェクトのプロトタイプチェーンを操作し、プロトタイププロパティがそこに表示されているかどうかを確認します。指定されたオブジェクトが子であるか、指定されたコンストラクターのインスタンスであるかをチェックします。

構文:

<object> instanceof <constructor/type>

この演算子はブール値を返します。さらに、演算子はオブジェクトインスタンスのみを受け入れ、プリミティブは受け入れません。

新しい String オブジェクト vehicleBrand をインスタンス化してみましょう。

let vehicleBrand: String = new String("AUDI");

次に、instanceof 演算子を使用して、vehicleBrand が文字列型であるかどうかを確認します。

console.log(vehicleBrand instanceof String);

出力:

true

予想どおり、vehicleBrand は String オブジェクトであるため、演算子は true を返します。

TypeScript で変数が文字列で Object.prototype を使用してあるかどうかを確認する

Object.prototype は、TypeScript で文字列型を識別するためのより一般的な方法としても使用できます。このプロパティには、toString() メソッドが含まれています。このメソッドでは、call メソッドを使用して、指定された変数のプロトタイプのタイプを確認できます。

構文:

Object.prototype.toString.call(<variable/object>);

これにより、次の形式の文字列が返されます。

"[object String]"
OR
"[object Array]"
OR
.
.
.

新しい変数 newStringValue を作成しましょう。

let newStringValue: string = 'This is a new string';

次に、Object.prototype プロパティを使用して、newStringValue 変数コンストラクタータイプをチェックします。

console.log(Object.prototype.toString.call(newStringValue));

出力:

[object String]

予想通り、タイプは文字列です。