HOWTO · TypeScript

TypeScript で文字列をブール値に変換する

このチュートリアルでは、文字列データ型を Boolean データ型に変換するために利用できるさまざまな方法を読者に説明します。

このページの内容

あるデータ型から別のデータ型への変換は、アプリケーションを作成するときに使用される一般的なプログラミング アプローチです。これは、同じ入力に対して別の形式で出力を取得するのに役立つためです。

たとえば、数値データを扱う場合、リクエストから number 型のリクエスト パラメータを取得したい場合があります。リクエストは string 型であるため、parseInt() または parseFloat() メソッドを使用して、 リクエストパラメータを Number 型に変換します。

このアプローチは数値に限定されるだけでなく、あるデータ型を別のデータ型に変換するために活用できる他の方法も提供します。 このチュートリアルでは、文字列データ型をブール データ型に変換するために使用できるさまざまな方法を学習します。

TypeScript プロジェクトを作成する

WebStorm IDEA を開き、File > New > Project を選択します。 開いたウィンドウで、左側で Node.js を選択し、右側でプロジェクトの name を untitled から string-to-boolean に変更するか、任意の名前を入力します。

このプロジェクトを作成する前に、node がインストールされていることを確認して、残りの 2つのセクション Node interpreter と Package manager がファイル システムから自動的に追加されるようにします。

プロジェクトが生成されたら、キーボード ショートカット Alt+F12 を使用して新しいターミナル ウィンドウを開き、次のコマンドを使用して tsconfig.json という名前の構成ファイルを作成します。

~/WebstormProjects/string-to-boolean$ tsc --init

ファイルの内容が次のようになっていることを確認します。 私たちが行った唯一の変更は、TypeScript コードのトランスパイル中にエラーが発生した場合に JavaScript ファイルが作成されないように、noEmitOnError: true を追加したことです。

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "noEmitOnError": true,
    "strict": true,
    "noFallthroughCasesInSwitch": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true
  }
}

正規表現を使用して文字列をテストする

string-to-kotlinフォルダーの下にMain.tsという名前のファイルを作成し、次のコードをコピーしてファイルに貼り付けます。

const trueFlag = "true";
const falseFlag = "false";

function usingTestMethod(){
    const flag = (/true/i).test(trueFlag);
    console.log(flag);
}
usingTestMethod();

このコードでは、2つの文字列フラグと usingTestMethod() という名前のメソッドを作成しました。 文字列フラグには、それぞれ値 true と false が含まれています。 これらは、このチュートリアルのすべての例で使用されるため、宣言されたグローバル変数です。

usingTestMethod() は、RegExp インターフェイスの test() メソッドを使用して、文字列が正規表現に一致する場合に true を返す正規表現 /true/i を作成します。

文字列が正規表現と一致しない場合、false ブール値の結果が得られることに注意してください。 文字列フラグには文字列 true が含まれているため、正規表現は一致し、true を返します。

次のコマンドを使用してこのコードを実行します。

~/WebstormProjects/string-to-boolean$ tsc && node Main.js

tsc コマンドは、TypeScript コードを JavaScript コードにトランスパイルし、Main.js という名前のファイルを生成します。 node コマンドは Main.js ファイルを実行し、コードによって返された値がコンソールに記録されます。

true

厳密な等価演算子を使用する

Main.ts ファイルの usingTestMethod() 関数の後に次のコードをコピー アンド ペーストします。

function usingStrictEqualityOperator(){
    const flag = (trueFlag === "true");
    console.log(flag);
}
usingStrictEqualityOperator();

このメソッドでは、usingStrictEqualityOperator() という名前のメソッドを作成しました。このメソッドは、厳密等価演算子 === を使用して、値 true を含む文字列フラグが引数として渡す文字列と厳密に等しいかどうかをテストします。

等号演算子 == を使用しないのはなぜですか? これは、予想とは異なる結果を返す可能性のある型強制を避けるためです。

2つの文字列が等しいため、厳密等価演算子は true の値を返します。 前の例で使用したコマンドを使用してこのコードを実行し、出力が次のようになっていることを確認します。

true

JSON API の parse() メソッドを使用する

次のコードをコピーして、Main.ts ファイルの usingStrictEqualityOperator() メソッドの後に貼り付けます。

function usingJSONParser(){
    const flag = JSON.parse(falseFlag);
    console.log(flag);
}
usingJSONParser();

このコードでは、JSON インターフェイスの parse() メソッドを使用してブール値の引数として提供されたテキストを解析する usingJSONParser() という名前のメソッドを作成しました。

この例では、値 "true" の文字列フラグを含む変数 falseFlag を渡し、parse メソッドはこの文字列から true のブール値を返します。

要件に応じて、Object、Array、string、または number を返すことができることに注意してください。

前の例で使用したコマンドを使用してこのコードを実行し、出力が次のようになっていることを確認します。

false

switch ステートメントを使用する

Main.ts ファイルの usingJSONParser() メソッドの後に、次のコードをコピーして貼り付けます。

function flagResult(flag: any){
    switch (flag){
        case true:
        case "true":
        case 1:
        case "1":
        case "on":
        case "yes":
            return true;
        default:
            return false;
    }
}

function usingSwitchStatement(){
    const flag = flagResult(trueFlag);
    console.log(flag);
}
usingSwitchStatement();

このコードでは、flagResult() と usingSwitchStatement() という名前の 2つのメソッドを作成しました。 flagResult() メソッドは any 型の 1つのパラメーターを受け入れます。 メソッドに渡された引数に応じて、true または false のブール値が返されます。

このメソッドは、引数 true、"true"、1、on、または yes のいずれかに対して true の値を返します。 それ以外の場合、false の値が返されます。

usingSwitchStatement() は、このメソッドを使用して、このチュートリアルの冒頭で宣言された文字列フラグ trueFlag のブール値を取得します。 変数 flag には、trueFlag を flagResult() メソッドに渡した結果が含まれます。

前の例で使用したコマンドを使用してこのコードを実行し、出力が次のようになっていることを確認します。

true

まとめ

このチュートリアルでは、文字列値をブール値に変換する方法を説明しました。 カバーしたトピックには、正規表現を使用した文字列のテスト、厳密な等値演算子の使用、JSON API の parse() メソッドの使用が含まれ、最後に switch ステートメントの使用方法を学びました。

ライブラリは同じ目的を実現するのに役立つことに注意してください。開発者は、このチュートリアルで取り上げていない他のアプローチを使用することにオープンである必要があります。