Javascript 如果…;其他…;else if语句
我有一段代码:Javascript 如果…;其他…;else if语句,javascript,node.js,typescript,Javascript,Node.js,Typescript,我有一段代码: if (service.isHostel) { return new Hostel({url: service.url}); } else { return new booking({url: service.url}); } 我想用一行来表示 service.isHostel ? Hostel({url: service.url}) : return new booking({url: serv
if (service.isHostel) {
return new Hostel({url: service.url});
} else {
return new booking({url: service.url});
}
我想用一行来表示
service.isHostel ? Hostel({url: service.url}) : return new booking({url: service.url})
但我有一个编译错误:
需要表达式。您需要为
Hostel
添加一个新的
操作符,并省略该表达式中的return语句
return service.isHostel ? new Hostel({url: service.url}) : new booking({url: service.url});
另一个版本是选择不同的类
return new (service.isHostel ? Hostel : booking)({url: service.url});
您只能在三元操作中编写表达式(返回值的代码段)
return
是不能在三元运算符表达式中使用的语句
在这里,您必须返回
两个值,然后才能使用返回
return service.isHostel ? new Hostel({url: service.url}) : new booking({url: service.url})
是否尝试返回服务.isHostel?新建招待所({url:service.url}):新建预订({url:service.url})您是否缺少招待所对象附近的
new
关键字?整个代码应为returnreturn service.isHostel?新旅馆({url:service.url}):新预订({url:service.url})
我喜欢这种方法,因为如果您将(service.isHostel?hotel:booking)
移动到一个单独的功能,您将到达工厂模式