2017-05-25 81 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。