2017-10-20 155 views
0

我想聲明一個函數參數的接口,並且參數是一個對象,如果沒有給出參數,那麼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 {}

回答

0

如果您解構第二個參數,你可以指定任何屬性的類型,但是你可以'不指定你解構的參數的類型,因爲它沒有綁定(例如,沒有變量實際上是ReadCsvConfig)。你可以投在{}表達默認值與類型:

function read_csv (filePath:string,{ 
    index_col=false, 
    delimiter=',', 
    header=0, 
    dataType='number' 
}={} as ReadCsvConfig){ 
... 
} 
+0

非常感謝。 。 。 – laoqiren