Использование внешне определенного компонента с синтаксисом декоратора классов Vue и TypeScript - PullRequest
2 голосов
/ 06 июня 2019

Я пытаюсь использовать vue-form-wizard в компоненте Vue, используя синтаксис декоратора TypeScript, включенный vue-class-component.

Вот мой .vue file:

<template>
    <form-wizard>
        <tab-content title="Personal details">
            My first tab content
        </tab-content>
        <tab-content title="Additional Info">
            My second tab content
        </tab-content>
        <tab-content title="Last step">
            Yuhuuu! This seems pretty damn simple
        </tab-content>
    </form-wizard>
</template>

<script lang="ts">
import Vue from 'vue';
import Component from "vue-class-component";
import { FormWizard, TabContent} from "vue-form-wizard";

@Component({
    components: {
        FormWizard, TabContent
    }
})
export default class AdvisorWizard extends Vue {
}
</script>

И вот ошибка, которую генерирует TypeScript:

Argument of type '{ components: { FormWizard: typeof FormWizard; TabContent: typeof TabContent; }; }' is not assignable to parameter of type 'VueClass<Vue>'.
Object literal may only specify known properties, but 'components' does not exist in type 'VueClass<Vue>'. Did you mean to write 'component'?

Я почти уверен, что это потому, что FormWizard не делаетT расширить или иным образом реализовать Vue.Но я не могу понять, как привести компонент или иным образом заставить TypeScript поверить в то, что FormWizard является компонентом Vue.

Возможно ли, что наборы для FormWizard просто неверны?

export type ShapeType = 'circle' | 'square' | 'tab'
export type LayoutType = 'vertical' | 'horizontal'
export type StepSizeType = 'xs' | 'sm' | 'md' | 'lg'

export declare class Wizard {
  /** Wizard title */
  title: string
  /** Wizard subtitle */
  subtitle: string
  nextButtonText: string
  backButtonText: string
  finishButtonText: string
  /** Whether to hide footer buttons */
  hideButtons: boolean
  /** Whether to trigger beforeChange function when navigating back */
  validateOnBack: boolean
  /** Active step and button color */
  color: string
  /** Step color when the current step is not valid */
  errorColor: string
  /** Main step shape */
  shape: ShapeType
  /** Wizard layout */
  layout: LayoutType
  /** Additional css classes for steps */
  stepsClasses: string[]
  /** Step size */
  stepSize: StepSizeType
  /** Step transition from inactive to active */
  transition: string
  /** Tab index where the wizard should start */
  startIndex: number
}

Если так, что я могу сделать, чтобы это исправить?

1 Ответ

1 голос
/ 07 июня 2019

Определения типов в vue-form-wizard были обновлены для решения этой проблемы , но никогда не выпускались.Вы можете вручную установить коммит GitHub, который включает изменения, используя эту команду:

npm i -S git://github.com/BinarCode/vue-form-wizard#c686975
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...