28
我遇到的情況,我有一個具有像這樣一個方法的接口:打字稿 - 在類的默認參數與接口
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");
它抱怨說,參數不匹配任何覆蓋。那麼是否有一種方法可以爲參數設置默認值並從接口繼承,我不介意接口是否必須具有默認值,因爲它始終是一個可選參數。
哦,我認爲這是有利於在最近的版本之一的默認值刪除。所以我能夠在類中的接口和默認值參數中使用可選參數? – Grofit
您仍然可以在任何地方使用可選參數而不使用默認值。唯一不允許的是冗餘語法'x?= 4' - 你可以使用'?'或默認值。 –
請注意,如果您調用'SomeMethod('foo','bar')','arg3'參數將是'undefined',而不是'null'。 – vegemite4me