title: How to fix 'cannot assign to Partial<this>' in subclass method?
body: <p>If I invoke the base class's <code>update</code> method via a subclass instance it works, but it gives me this error if I do it inside a subclass method:</p>
  
  <blockquote>
    <p>Argument of type '{ prop: number; }' is not assignable to parameter of type 'Partial&lt;this>'.</p>
  </blockquote>
  
  <pre class="lang-js prettyprint-override"><code>class Base {
      update(modifier: Partial&lt;this&gt;) {
          Object.keys(modifier).forEach(key =&gt; {
              this[key] = modifier[key];
          });
      }
  }
  
  class Sub extends Base {
      prop;
  
      job() {
          // Error: Argument of type '{ prop: number; }' is not assignable 
          // to parameter of type 'Partial&lt;this&gt;'.ts(2345)
          this.update({ prop: 1 });
      }
  }
  
  new Sub().update({ prop: 1 }); // but it works here!
  </code></pre>
  
  <p><a href="http://www.typescriptlang.org/play/index.html#src=class%20Base%20%7B%0D%0A%20%20%20%20update(modifier%3A%20Partial%3Cthis%3E)%20%7B%0D%0A%20%20%20%20%20%20%20%20Object.keys(modifier).forEach(key%20%3D%3E%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this%5Bkey%5D%20%3D%20modifier%5Bkey%5D%3B%0D%0A%20%20%20%20%20%20%20%20%7D)%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Aclass%20Sub%20extends%20Base%20%7B%0D%0A%20%20%20%20prop%3B%0D%0A%0D%0A%20%20%20%20job()%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Error%3A%20Argument%20of%20type%20&#39;%7B%20prop%3A%20number%3B%20%7D&#39;%20is%20not%20assignable%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20to%20parameter%20of%20type%20&#39;Partial%3Cthis%3E&#39;.ts(2345)%0D%0A%20%20%20%20%20%20%20%20this.update(%7B%20prop%3A%201%20%7D)%3B%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Anew%20Sub().update(%7B%20prop%3A%201%20%7D)%3B%20%2F%2F%20but%20it%20works%20here!" rel="nofollow noreferrer">Live on the TypeScript playground</a>.</p>
  
  <p>How do I fix it?</p>