我正在寻找一种简短的语法,如果某些值是" falsy",就会抛出错误,例如。
var x = lookupSomeValue() || throw new Error('missing')
上面给出了语法错误。有没有类似的简写,还是我必须求助于下面的长篇形式?
var x = lookupSomeValue()
if(!x) throw new Error('missing')
答案 0 :(得分:4)
throw是一个声明,因此无法在需要表达式的地方使用它。您可以创建一个只抛出错误的函数,然后将该函数作为表达式的一部分调用:
function throwMissing ( ) {
throw new Error( 'missing' );
}
如果您想抛出错误:
var x = lookupSomeValue() || throwMissing();
当然你也可以使用匿名功能:
var x = lookupSomeValue() || function(){ throw new Error('missing' ); }();
var x = lookupSomeValue() || ()=>{ throw new Error('missing' ); }();