TypeScript で文字列をブール値に変換する
- TypeScript プロジェクトを作成する
- 正規表現を使用して文字列をテストする
- 厳密な等価演算子を使用する
-
JSON API の
parse()
メソッドを使用する -
switch
ステートメントを使用する - まとめ
あるデータ型から別のデータ型への変換は、アプリケーションを作成するときに使用される一般的なプログラミング アプローチです。これは、同じ入力に対して別の形式で出力を取得するのに役立つためです。
たとえば、数値データを扱う場合、リクエストから 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
ステートメントの使用方法を学びました。
ライブラリは同じ目的を実現するのに役立つことに注意してください。開発者は、このチュートリアルで取り上げていない他のアプローチを使用することにオープンである必要があります。
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub