Typescript - 带接口的类的默认参数

时间:2013-09-05 15:18:17

标签: interface arguments typescript default-value

我有一个场景,我有一个接口,有这样的方法:

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");

它抱怨参数与任何覆盖都不匹配。那么有没有办法能够为参数提供默认值并从接口继承,我不介意接口是否必须将值作为默认值,因为它始终是一个可选参数。

1 个答案:

答案 0 :(得分:64)

您可以使用?

将参数定义为可选参数
interface SomeInterface {
     SomeMethod(arg1: string, arg2: string, arg3?: boolean);
}