Я сталкиваюсь со сценарием, в котором у меня есть много функций с похожими параметрами, и я пытаюсь найти решение, чтобы сделать все легко обслуживаемым.Возьмите следующий пример:
public func1(param1: string, param2: string, param3: string){}
public func2(param1: string, param2: string, param3: string){}
public func3(param1: string, param2: string, param3: string){}
public func4(param1: string, param2: string, param3: string, param4: string){}
public func5(param1: string, param2: string, param3: string, param4: string){}
public func6(param1: string, param2: string, param3: string, param4: string){}
... Etc
Изначально я думал о таком интерфейсе, как:
interface IMyInterface {
param1: string;
param2: string;
param3: string;
}
и использовал его в функции:
public func1(args: IMyInaterface) {
}
Нозатем в функции 4,5,6 я не могу расширить его, чтобы принимать N дополнительных аргументов без создания новых интерфейсов, и я не хочу поддерживать все производные интерфейсы.
Я также хотел бы сохранить свои наборы (не все параметры являются строками, а все функции имеют определенное количество параметров), чтобы что-то вроде
func1(...args: string){}
не работало
Есть идеи, как лучше это сделать?