title: VueJS + Typescript: Property does not exist on type
body: <p>I created a simple Vue app using vue-cli 3 and configured with TypeScript. I also installed axios and I'm trying to use it in <code>mounted()</code> in order to load data and display it in a component.</p>
  
  <p>Here's the code:</p>
  
  <pre><code>&lt;script lang='ts'&gt;
  
  import { Component, Prop, Vue } from 'vue-property-decorator';
  import SearchBar from '@/components/prods_comp/SearchBar.vue';
  import ProdsTable from '@/components/prods_comp/ProdsTable.vue';
  
  @Component({
    components: {
      SearchBar,
      ProdsTable,
    },
  })
  export default class MainProds extends Vue {
  
    @Prop({ default: 'Produits' }) private message!: string;
  
    mounted() {
      const baseURI = 'http://localhost:8069';
      this.$http({
        method: 'POST',
        url: baseURI + '/vue_web_services/msg/',
        headers: { 'content-type': 'application/json',},
        data: {
        }
      }).then(function (response) {
        console.log(response.data);
      });
    }
  }
  
  &lt;/script&gt;
  </code></pre>
  
  <p>This is a fairly basic API call. It works. The problem is this message that keeps on popping in the console:</p>
  
  <pre><code>ERROR in D:/ODOO/Vue/bons_commande/src/components/prods_comp/MainProds.vue
  26:10 Property '$http' does not exist on type 'MainProds'.
      24 |   mounted() {
      25 |     const baseURI = 'http://localhost:8069';
    &gt; 26 |     this.$http({
         |          ^
      27 |       method: 'POST',
      28 |       url: baseURI + '/vue_web_services/msg/',
      29 |       crossdomain: true,
  </code></pre>
  
  <p>EDIT: Here's <strong>main.ts</strong>:</p>
  
  <pre><code>import Vue from 'vue';
  import App from './App.vue';
  import router from './router';
  import store from './store';
  import VueSweetalert2 from 'vue-sweetalert2';
  import ElementUI from 'element-ui';
  import 'element-ui/lib/theme-chalk/index.css';
  import '@/assets/scss/tailwind.scss';
  import axios from 'axios';
  
  Vue.config.productionTip = false;
  Vue.prototype.$http = axios;
  
  Vue.use(ElementUI);
  Vue.use(VueSweetalert2);
  
  new Vue({
      router,
      store,
      render: h =&gt; h(App)
  }).$mount('#app');
  </code></pre>