我想声明一个函数参数的接口,参数是一个对象,如果没有给出参数,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 :(得分:0)
如果要对第二个参数进行解构,则可以指定任何属性的类型,但不能指定要解构的参数的类型,因为它没有绑定(例如,实际上没有变量{ {1}})。您可以在ReadCsvConfig
表达式上对默认值执行类型转换:
{}