Разрушение - это просто хороший способ распаковать свойства из объектов и массивов и назначить их переменным.Как показывает код в вопросе, который может быть использован, любой вид операции невозможен.
Один хак будет означать создание еще 2 переменных (которых нет в input
) иустановите значение по умолчанию равным числу, эквивалентному ранее уничтоженным свойствам:
let input = { latitude: "17.0009", longitude: "82.2108" }
let { latitude, longitude, lat = +latitude, long = +longitude } = input
console.log(typeof latitude, typeof longitude, typeof lat, typeof long)
Код приблизительно Передается к этому ( Babel ):
var latitude = input.latitude,
longitude = input.longitude,
lat = input.lat === undefined ? +latitude : input.lat,
long = input.long === undefined ? +longitude : input.long;
Это просто использованиепорядок, в котором создаются переменные и присваиваются значения свойств.Опять же, это работает, только если в input
нет свойств lat
или long
.В противном случае произойдет сбой троичного условия, и для lat
будет установлено значение input.lat
.
Примерно так будет легче читать:
let { latitude, longitude } = input;
let lat = +latitude,
long = +longitude;
ИЛИ
let [ lat, long ] = [ +latitude, +longitude ]