我有一个场景,我有一个接口,有这样的方法:
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");
它抱怨参数与任何覆盖都不匹配。那么有没有办法能够为参数提供默认值并从接口继承,我不介意接口是否必须将值作为默认值,因为它始终是一个可选参数。
答案 0 :(得分:64)
您可以使用?
:
interface SomeInterface {
SomeMethod(arg1: string, arg2: string, arg3?: boolean);
}