41
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[JavaScript][TypeScript] 文字列("true", "false")をboolean型に変換する

Last updated at Posted at 2017-09-12

文字列("true", "false")をboolean型に変換しようと思ったが、良い方法が思いつかなかったのでメモ

#前提条件
TypeScriptで、引数文字列をboolean型に変換するメソッドを作りたい

public toBoolean(booleanStr: string): boolean {
    // 引数文字列をboolean型に変換した結果を返却
}

#悪い書き方(と思われる)

public toBoolean(booleanStr: string): boolean {
    return JSON.parse(booleanStr);
}

わざわざJSON.parse()を使うのは大げさな気がするし、コストが高いような気がする...
さらに、JSON.parse()は厳密な使い方でないとエラーを吐くことが判明

JSON.parse("true");    // true
JSON.parse("false");   // false
JSON.parse("TRUE");    // エラーになる
JSON.parse("FALSE");   // エラーになる
JSON.parse(null);      // null
JSON.parse(undefined); // エラーになる

#良い書き方(と思われる)
converting String true/false to Boolean value [duplicate]を参照したところ、良さそうな書き方があったので書き直し

public toBoolean(booleanStr: string): boolean {
    // "true"文字列と比較した結果を返す
    // 念のため小文字化しておく
    return booleanStr.toLowerCase() === "true";
}

この方法であれば、厳密な使い方をしなくてもエラーにはならない

XXX.toBoolean("true");    // true
XXX.toBoolean("false");   // false
XXX.toBoolean("TRUE");    // true
XXX.toBoolean("FALSE");   // false
XXX.toBoolean(null);      // エラーにならず, false
XXX.toBoolean(undefined); // エラーにならず, false

#おわりに
文字列("true", "false")をboolean型を変換する機会はあまりないと思われるので、お役に立てたらと思います。
間違い・気付きなどあれば、コメントをいただけると助かります。

41
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?