title: Import CoreUI icons into Vue.js TypeScript project
body: <p>I'm building a Vue.js app with CoreUI in TypeScript.
  The problem I currently have is related to CoreUI's icons. My application runs fine and renders the icons, but VSC complains about the specific line:</p>
  
  <pre><code>icons: { cilHome, cilSettings },
  </code></pre>
  
  <p>Here is the entire code of my main.ts:</p>
  
  <pre><code>import Vue from "vue";
  import App from "./App.vue";
  import CoreuiVue from "@coreui/vue";
  import { cilPencil, cilSettings } from "@coreui/icons";
  import router from "./router";
  import store from "./store";
  
  Vue.config.productionTip = false;
  
  Vue.use(CoreuiVue);
  
  new Vue({
    router,
    store,
    icons: { cilPencil, cilSettings },
    render: h =&gt; h(App)
  }).$mount("#app");
  </code></pre>
  
  <p>VSC error text:</p>
  
  <blockquote>
    <p>No overload matches this call.
      Overload 1 of 3, '(options?: ThisTypedComponentOptionsWithArrayProps | undefined): CombinedVueInstance>', gave the following error.
        Argument of type '{ router: VueRouter; store: Store; icons: { cilHome: string[]; cilSettings: string[]; }; render: (h: CreateElement) => VNode; }' is not assignable to parameter of type 'ThisTypedComponentOptionsWithArrayProps'.
          Object literal may only specify known properties, and 'icons' does not exist in type 'ThisTypedComponentOptionsWithArrayProps'.
      Overload 2 of 3, '(options?: ThisTypedComponentOptionsWithRecordProps | undefined): CombinedVueInstance>', gave the following error.
        Argument of type '{ router: VueRouter; store: Store; icons: { cilHome: string[]; cilSettings: string[]; }; render: (h: CreateElement) => VNode; }' is not assignable to parameter of type 'ThisTypedComponentOptionsWithRecordProps'.
          Object literal may only specify known properties, and 'icons' does not exist in type 'ThisTypedComponentOptionsWithRecordProps'.
      Overload 3 of 3, '(options?: ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record&lt;...>> | undefined): CombinedVueInstance&lt;...>', gave the following error.
        Argument of type '{ router: VueRouter; store: Store; icons: { cilHome: string[]; cilSettings: string[]; }; render: (h: CreateElement) => VNode; }' is not assignable to parameter of type 'ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record&lt;...>>'.
          Object literal may only specify known properties, and 'icons' does not exist in type 'ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record&lt;...>>'.ts(2769)
    Peek Problem
    No quick fixes available</p>
  </blockquote>
  
  <p>I assume it's a TypeScript type issue, since the code is built with no issues in EcmaScript: <a href="https://github.com/coreui/coreui-free-vue-admin-template" rel="nofollow noreferrer">https://github.com/coreui/coreui-free-vue-admin-template</a>. 
  I would really appreciate if you could share your experience with such issues. Thank you!</p>