2017-05-25 121 views
1

我嘗試這樣做是打字稿的如果打字稿聲明

// some_array is filled with objects 

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

some_array.find()將返回「未定義」或對象

因爲這個代碼是內部分配不申報價值打字稿不合法,有沒有辦法做到這一點?

現在我會做這個

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

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

我知道它只是多了一個線,但它會更清潔,更可讀的其他方式。

+1

「這將是更清潔,更可讀的另一種方式。」..你爲什麼這麼想?我完全同意。第二個肯定是更可讀和標準的方式。 –

回答

2

你可以這樣做:

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

但我不認爲你可以在iflet(或var/const)decleration。