У меня есть метод в машинописном тексте, как показано ниже, с использованием именованных параметров
public foo({x, y, z , m , n} : {x:string, y: number, z: number, m?:string, n?:number}) {
}
параметры m
и n
будут предоставлены из другого объекта, например
const default = { m : 'M', n :10, o:6 }
Теперь я хочу для вызова foo, как показано ниже, и я хочу, чтобы параметры по умолчанию были добавлены без явной передачи их в вызове
foo({x:'x', y: 5, z: 0})
Итак, мой вопрос в том, как применить default
в теле foo
или каким-то образом перехватить foo
перед вызовом и применением default
public foo({x, y, z , m , n} = {x:string, y: number, z: number, m?:string, n?:number}) {
// for example how to apply default here
}
Обратите внимание, для простоты я уменьшил количество параметров
Также я уже знаю эти нижеприведенные решения Я ищу что-то с меньшим количеством шаблонного кода
public foo({x, y, z , m , n} = {x:string, y: number, z: number, m?:string, n?:number}) {
if (!m) {
m = default.m;
}
if (!n) {
n = default.n;
}
}
или
foo({...default, x:'x', y: 5, z: 0 });