具有默认值和默认属性的对象参数的接口

时间:2017-10-20 14:37:15

标签: javascript node.js typescript

我想声明一个函数参数的接口,参数是一个对象,如果没有给出参数,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 {}

1 个答案:

答案 0 :(得分:0)

如果要对第二个参数进行解构,则可以指定任何属性的类型,但不能指定要解构的参数的类型,因为它没有绑定(例如,实际上没有变量{ {1}})。您可以在ReadCsvConfig表达式上对默认值执行类型转换:

{}