title: How to replace `object` with `Record<string, unknown>`?
body: <p>Consider this:</p>
  <pre><code>interface Foo {
    foo: string;
  }
  
  const foo: Foo = { foo: &quot;foo&quot; };
  
  function bar(obj: object) {}                   // &lt;--- ERROR 1
  bar(foo);
  
  function baz(obj: Record&lt;string, unknown&gt;) {}
  baz(foo);                                      // &lt;--- ERROR 2
  </code></pre>
  <p>So, ERROR 1 is:</p>
  <pre><code>Don't use `object` as a type. The `object` type is currently hard to use ([see this issue](https://github.com/microsoft/TypeScript/issues/21732)).
  Consider using `Record&lt;string, unknown&gt;` instead, as it allows you to more easily inspect and use the keys.eslint@typescript-eslint/ban-types
  </code></pre>
  <p>Hence, I did what I have been told me and replaced <code>object</code> by <code>Record&lt;string, unknown&gt;</code> in <code>baz</code>. But, now I get ERROR 2:</p>
  <pre><code>Argument of type 'Foo' is not assignable to parameter of type 'Record&lt;string, unknown&gt;'.
    Index signature for type 'string' is missing in type 'Foo'.ts(2345)
  </code></pre>
  <p>So, what's the proper approach to avoid using <code>object</code>?</p>