#javascript #typescript #syntax
#javascript #typescript #синтаксис
Вопрос:
Я хочу установить значения по умолчанию для необязательного аргумента. В исходном коде функция содержит несколько аргументов и вызывается следующим образом, где options
является необязательным аргументом и может содержать несколько необязательных параметров:
func(arg1, arg2, options)
Для простоты я удалил первые два аргумента в следующем примере. В настоящее время я делаю это так:
function test({ a = true, b = false }: { a?: boolean, b?: boolean } = { a: true, b: false }) {
console.log(a, b);
}
// Examples
test(); // true, false (defaults)
test({ a: false }); // false, false
test({ b: true }); // true, true
test({ a: false, b: true }); // false, true
В заголовке функции много избыточности. Я ищу способ упростить код и удалить избыточность.
Ответ №1:
Инициализатором параметра может быть пустой объект:
function test({ a = true, b = false }: { a?: boolean, b?: boolean } = {}) {
console.log(a, b);
}