1. ホーム
  2. typescript

[解決済み] Typescript の boolean への変換

2023-05-28 04:48:59

質問

Typescriptでは、このようなことができます。

var xxx : some_type;

if (xxx)
    foo();
else
    bar();

ここではxxxは型に関係なくブーリアンとして扱われます。

同じことを関数の引数で行いたいと思います。こんな関数があります。

function foo(b : boolean) { ... }

を呼び出せるようにしたい。 foo(xxx) を呼び出して、その型に関係なく xxx が boolean として扱われるようにしたい。しかし、Typescriptはそれを許さない。

私はこれを試しました。

foo(<boolean>xxx);

のように記述しますが、Typescriptはそれも許さないということです。

これならできる。

foo(xxx ? true : false);

しかし、これは少し馬鹿げているように思えます。もっといい方法はないのでしょうか?

どのように解決するのですか?

あなたは 二重感嘆符 というトリックがありますが、これはTypescriptが許可しており、JavaScriptでは問題なく動作します。

foo(!!xxx);

あるいは,これを any

foo(<any>xxx);