У меня есть сценарий, в котором у меня есть интерфейс с таким методом:
interface SomeInterface
{
SomeMethod(arg1: string, arg2: string, arg3: boolean);
}
И такой класс:
class SomeImplementation implements SomeInterface
{
public SomeMethod(arg1: string, arg2: string, arg3: boolean = true){...}
}
Теперь проблема в том, что я не могу сказать интерфейсу, что 3-й параметр должен быть необязательным или иметь значение по умолчанию, как если бы я пытался сообщить интерфейсу, что есть значение по умолчанию, я получаю сообщение об ошибке:
TS2174: Default arguments are not allowed in an overload parameter.
Если я опускаю значение по умолчанию в интерфейсе и вызываю его так:
var myObject = new SomeImplementation();
myObject.SomeMethod("foo", "bar");
Он жалуется, что параметры не соответствуют ни одному переопределению. Итак, есть ли способ иметь значения по умолчанию для параметров и наследовать от интерфейса, я не возражаю, если интерфейс также должен иметь значение по умолчанию, поскольку оно всегда будет необязательным аргументом.