![](/img/trans.png)
[英]Set default value of property of object passed on parameter to function
[英]Interface of object parameter with default value and default property
我想聲明一個函數的參數接口,並且該參數是一個對象,如果不給出參數,則defult為{}
,則接口如下:
interface ReadCsvConfig {
index_col: boolean | number[];
delimiter: string;
header: string[] | number;
dataType: string;
}
函數是這樣的:
function read_csv (filePath:string,{
index_col=false,
delimiter=',',
header=0,
dataType='number'
}={}){
...
}
現在,如何將第二個參數聲明為ReadCsvConfig
?
我試圖這樣聲明:
{
index_col=false,
delimiter=',',
header=0,
dataType='number'
}: ReadCsvConfig={}
但出現錯誤: index_col is missing in type {}
如果要解構第二個參數,則可以指定任何屬性的類型,但不能指定要解構的參數的類型,因為沒有綁定(例如,實際上沒有變量是ReadCsvConfig
)。 您可以使用以下方法對{}
表達式進行類型轉換,以獲取默認值:
function read_csv (filePath:string,{
index_col=false,
delimiter=',',
header=0,
dataType='number'
}={} as ReadCsvConfig){
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.