2017-10-20 7 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される第2のパラメータを宣言するためにどのように?

私はこのように宣言してみました:

{ 
    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

関連する問題