Heim  >  Fragen und Antworten  >  Hauptteil

vue-test-utils + Typoskripttyp für wrapper.vm

Hier ist eine Frage. Habe Typescript + Vue-Test-Utils verwendet und versucht, die Werte des Tests zu manipulieren, zum Beispiel: wrapper.vm.aCoolRefValueToManipulate = '更酷的东西'?

Nun, ich habe es versucht. Es funktioniert, aber der TS-Linter spielt hier verrückt, weil er nicht weiß, was vm 中的 aCoolRefValueToManipulate ist.

Weiß jemand, wie man dieses Problem löst?

linter hat mir gesagt:

Property 'showTopDown' does not exist on type '{ $: ComponentInternalInstance; $data: {}; $props: Partial<{}> & Omit<Readonly<ExtractPropTypes<{}>> & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>; ... 10 more ...; $watch(source: string | Function, cb: Function, options?: WatchOptions<...> | undefined): WatchStopHandle; } & Readonly<...> & Sha...'.ts(2339)

Lösung

Einige coole Leute haben mir auf dem offiziellen Vue Discord-Server geholfen.

(wrapper.vm as any).aCoolRefValueToManipulate 

P粉054616867P粉054616867298 Tage vor484

Antworte allen(1)Ich werde antworten

  • P粉476046165

    P粉4760461652023-12-27 00:14:05

    我们是否有其他方法不使用“any”来访问wrapper.vm的方法?

    我刚刚发现这个可以尝试的东西:

    type TestWrapper<T> = VueWrapper<ComponentPublicInstance & T>
    let wrapper: TestWrapper<Partial<{ myMethod: () => void }>>
    
    wrapper.vm.myMethod?.()

    Antwort
    0
  • StornierenAntwort