TL;DR: Есть ли способ объявить свойство объекта, не присваивая ему значения?
Код: Выделить всё
const user = { name: [i]unset[/i], age: 42 }Код: Выделить всё
const props = {}
const propsSet = getters.map(async ([key, getValue]) => {
props[key] = async getValue()
})
await Promise.all(propsSet)
return props
Поскольку все это асинхронно, порядок свойств в реквизитах повсюду: иногда я получаю { foo: …, bar: … , иногда { bar: …, foo: … . Я мог бы это исправить, связав каждый метод получения с порядковым номером. Но гораздо более простое решение — как можно скорее инициировать свойства; из-за того, как работает цикл событий, это, по сути, гарантия того, что свойства свойств будут упорядочены так же, как и в геттерах:
Код: Выделить всё
const propsSet = getters.map(async ([key, getValue]) => {
props[key] = null // or any other initialization token
props[key] = await getValue()
})
код>); поэтому мне нужно отключить компилятор, чего я не люблю делать:
Код: Выделить всё
// @ts-expect-error
values[key] = null
Я понял, что то, что мне по сути нужно, очень похоже на объявление переменных отдельно от инициализации. их, – как в стиле старой школы JS:
Код: Выделить всё
var value1, value2
value1 = 42
value2 = 17
Обратите внимание: я не спрашиваю о способах упорядочивания свойств. Для этого существует множество стратегий, включая использование вышеупомянутых порядковых номеров (например, индексов массива).
Подробнее здесь: https://stackoverflow.com/questions/793 ... alizing-it
Мобильная версия