title: Iterate over generic properties of an object validating that is a property of the object and not any string (I receive an error from the compiler)
body: <pre><code>valuesOrCondition$&lt;T&gt;(objects: Observable&lt;T[]&gt;, objectWithPropertiesAndValues: Partial&lt;T&gt;) {
  
    const properties = Object.keys(objectWithPropertiesAndValues);
    return objects.pipe(  
        map(nodes =&gt; nodes.filter(node =&gt; 
                                     properties.find(ppName =&gt; 
                                     node[ppName] === objectWithPropertiesAndValues[ppName]))),
    );
  
  }
  </code></pre>
  <p>When I execute this code TypeScript gives me this error:</p>
  <p><strong>Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'unknown'. No index signature with a parameter of type 'string' was found on type 'unknown'.</strong></p>
  <p>But <code>objectWithPropertiesAndValues</code> is <code>Partial&lt;T&gt;</code> which means that always will exist on <code>node</code> which is <code>T</code>.</p>
  <p>I understand the problem and I know I can simply add <code>any</code> and it will work. But I would like to respect the Typescript way here.</p>