Vue ошибка на casl + vue при регистрации компонента Can по всему миру - PullRequest
0 голосов
/ 20 апреля 2020

Я создал простое vue + машинописное приложение с vue -cli. Следуя инструкциям https://stalniy.github.io/casl/v4/en/package/casl-vue, я объявил следующее:

// main.ts
import Vue from 'vue';
import App from './App.vue';
import { abilitiesPlugin } from '@casl/vue';
import ability from './services/ability';
import { Can } from '@casl/vue';

Vue.config.productionTip = false;
Vue.use(abilitiesPlugin);
Vue.component('Can', Can);
new Vue({
    render: h => h(App)
    // ability
}).$mount('#app');

Но я получаю ошибку при втором параметре:

 Vue.component('Can', Can);

Без перегрузки соответствует этому вызову. Последняя перегрузка дала следующую ошибку. Аргумент типа 'FunctionalComponentOptions, PropsDefinition >>' нельзя назначить параметру типа 'ComponentOptions, DefaultMethods, DefaultComputed, PropsDefinition>, Record <... >>'. Типы свойств render не совместимы. Тип '((это: undefined, createElement: CreateElement, контекст: RenderContext>) => VNode | VNode []) | undefined «нельзя назначить типу» ((createElement: CreateElement, hack: RenderContext>) => VNode) | не определено. Тип '(это: undefined, createElement: CreateElement, контекст: RenderContext>) => VNode | VNode [] 'нельзя назначить типу' (createElement: CreateElement, hack: RenderContext>) => VNode '. Тип 'VNode | VNode [] 'нельзя назначить типу' VNode '. Типу 'VNode []' не хватает следующих свойств из типа 'VNode': isRootInsert, isCommentts (2769) vue .d.ts (112, 3): здесь объявлена ​​последняя перегрузка.

Мой пакет. json содержит:

"dependencies": {
    "@casl/ability": "^4.0.5",
    "@casl/vue": "^1.0.2",
    "@typegoose/typegoose": "^6.4.0",
    "mongoose": "^5.9.9",
    "vue": "^2.6.11",
    "vue-class-component": "^7.2.3",
    "vue-property-decorator": "^8.4.1"
},
"devDependencies": {
    "@types/mongoose": "^5.7.12",
    "@typescript-eslint/eslint-plugin": "^2.26.0",
    "@typescript-eslint/parser": "^2.26.0",
    "@vue/cli-plugin-eslint": "~4.3.0",
    "@vue/cli-plugin-typescript": "~4.3.0",
    "@vue/cli-service": "~4.3.0",
    "@vue/eslint-config-prettier": "^6.0.0",
    "@vue/eslint-config-typescript": "^5.0.2",
    "eslint": "^6.7.2",
    "eslint-plugin-prettier": "^3.1.1",
    "eslint-plugin-vue": "^6.2.2",
    "lint-staged": "^9.5.0",
    "prettier": "^1.19.1",
    "typescript": "~3.8.3",
    "vue-template-compiler": "^2.6.11"
},

Заранее благодарен за любую помощь в этом. Извините, если мне не хватает информации в этом сообщении Q (это мой первый).

1 Ответ

0 голосов
/ 22 апреля 2020

Автор CASL здесь. Я улучшил типы машинописи для @casl/vue, обновил документы и выпустил версию патча для @casl/vue.

. В этом репозитории вы также можете найти пример интеграции vue + casl + typcript https://github.com/stalniy/casl-examples/tree/master/packages/vue-todo

...