ウェブサイト検索

TypeScriptでif文の中で宣言されていない値を代入すること


私はこれをTypeScriptでやろうとしています

// some_array is filled with objects

if (let result = some_array.find(o => o.id == 42)) {
    // do stuff with result
}

some_array.find() は 'undefined' かオブジェクトのいずれかを返します

このコードはTypeScriptでは正当ではないので、これを行う方法はありますか?

今、私はこれをします

let result = some_array.find(o => o.id == 42)

if (result) {
    // do stuff with result
}

たったもう一行だけだと分かっているけど、そちらの方がよりすっきりして読みやすいだろう。

回答 #1

あなたはこれをすることができます:

let result;
if (result = some_array.find(o => o.id == 42)) {
    console.log(result.x);
}

しかし、ifの中でlet(またはvar/const)の宣言を持つことはできないと思います。