title: Vue instance does not pick up shims-vue.d.ts file
body: <p>I have a Vue file that looks like this:</p>
  
  <pre><code>import Vue from 'vue';
  import VueRouter from 'vue-router';
  
  export default Vue.extend({
    name: 'MyComponentsName',
    methods: {
      doRedirect() {
        this.$router.push({ name: 'another-route' });
      },
    },
  });
  </code></pre>
  
  <p>And then in my shims-vue.d.ts file:</p>
  
  <pre><code>declare module '*.vue' {
    import Vue from 'vue';
    export default Vue;
  }
  
  declare module 'vue/types/vue' {
    import VueRouter from 'vue-router';
  
    interface VueConstructor {
      $router: VueRouter;
    }
  
    interface Vue {
      $router: VueRouter;
    }
  }
  </code></pre>
  
  <p>However, I'm getting the following warning: <code>Property '$router' does not exist on type 'CombinedVueInstance&lt;Vue, ...&gt;</code></p>
  
  <p>From what I understand, my shims should be telling Vue what <code>$router</code> is, but that doesn't seem to be happening. The only work around I've come up with is using <code>((this as any).$router as VueRouter).push()</code>, but that seems pretty ugly...</p>
  
  <p>How can I get rid of this warning?</p>