Импорт значков CoreUI в проект Vue. js TypeScript - PullRequest
0 голосов
/ 03 марта 2020

Я создаю приложение Vue. js с CoreUI в TypeScript. Проблема, которая у меня есть, связана с иконками CoreUI. Мое приложение работает нормально и отображает значки, но VS C жалуется на указанную строку c:

icons: { cilHome, cilSettings },

Вот весь код моего main.ts:

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 => h(App)
}).$mount("#app");

VS C текст ошибки:

Никакая перегрузка не соответствует этому вызову. Перегрузка 1 из 3, '(options ?: ThisTypedComponentOptionsWithArrayProps | undefined): CombinedVueInstance>', вызвала следующую ошибку. Аргумент типа '{router: VueRouter; магазин: магазин; значки: {cilHome: строка []; cilSettings: string []; }; render: (h: CreateElement) => VNode; } 'нельзя назначить параметру типа' ThisTypedComponentOptionsWithArrayProps '. Объектный литерал может указывать только известные свойства, а «icons» не существует в типе «ThisTypedComponentOptionsWithArrayProps». Перегрузка 2 из 3, '(options ?: ThisTypedComponentOptionsWithRecordProps | undefined): CombinedVueInstance>', вызвала следующую ошибку. Аргумент типа '{router: VueRouter; магазин: магазин; значки: {cilHome: строка []; cilSettings: string []; }; render: (h: CreateElement) => VNode; } 'нельзя назначить параметру типа' ThisTypedComponentOptionsWithRecordProps '. Литерал объекта может указывать только известные свойства, а «icons» не существует в типе «ThisTypedComponentOptionsWithRecordProps». Перегрузка 3 из 3, '(параметры ?: ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, запись <... >> | undefined): CombinedVueInstance <...>', вызвала следующую ошибку. Аргумент типа '{router: VueRouter; магазин: магазин; значки: {cilHome: строка []; cilSettings: string []; }; render: (h: CreateElement) => VNode; } 'нельзя назначить параметру типа' ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record <... >> '. Литерал объекта может указывать только известные свойства, а «значки» не существуют в типе «ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record <... >>». Ts (2769) Проблема с поиском Нет доступных быстрых исправлений

Я предполагаю, что это проблема типа TypeScript, поскольку код построен без проблем в EcmaScript: https://github.com/coreui/coreui-free-vue-admin-template. Буду очень признателен, если вы поделитесь своим опытом с такими вопросами. Спасибо!

1 Ответ

0 голосов
/ 04 марта 2020

Мне удалось устранить ошибку, создав файл нестандартного типа xxx.d.ts:

import Vue, { ComponentOptions } from "vue";

declare module "vue/types/options" {
  interface ComponentOptions<V extends Vue> {
    icons?: any;
  }
}
...