Я хотел бы реализовать функцию, которая принимает объект options
со значениями по умолчанию.
Я знаю, как это сделать, но я хочу навязать, что любое поле, не указанное пользователем, получит значение по умолчанию указано в заголовке функции.
Вот что у меня есть:
function func(options: {x: number; y: string;} = {x: 1, y: "1"}) {
const x: number = options.x != undefined ? options.x : 1;
const y: string = options.y != undefined ? options.y : "1";
console.log(x, y);
}
Это прекрасно работает, когда я тестирую эту функцию на выходном файле Javascript:
func();
func({});
func({x: 0});
func({y: "2"});
func({x: 3, y: "4"});
Что приводит к:
1 '1'
1 '1'
0 '1'
1 '2'
3 '4'
Тем не менее, это выглядит немного странно (в частности, тот факт, что мне нужно указать каждое из значений по умолчанию в двух разных местах).
Есть ли известный шаблон проектирования для этого в Typescript?