簡體   English   中英

具有默認值和默認屬性的對象參數的接口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM