title: Interface of object parameter with default value and default property
body: <p>I want to declare interface of the parameter of a function, and the parameter is an object, if the parameter is not given, defult is <code>{}</code>, the interface is like this:</p>
  
  <pre><code>interface ReadCsvConfig {
      index_col: boolean | number[];
      delimiter: string;
      header: string[] | number;
      dataType: string;
  }
  </code></pre>
  
  <p>and the function is like this:</p>
  
  <pre><code>function read_csv (filePath:string,{
      index_col=false,
      delimiter=',',
      header=0,
      dataType='number'
  }={}){
  ...
  }
  </code></pre>
  
  <p>and now, how to declare the second parameter to be <code>ReadCsvConfig</code>?</p>
  
  <p>I tried to declare like this:</p>
  
  <pre><code>{
      index_col=false,
      delimiter=',',
      header=0,
      dataType='number'
  }: ReadCsvConfig={}
  </code></pre>
  
  <p>but it comes the error: <code>index_col is missing in type {}</code></p>