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