vue-test-utils + Typoskripttyp für wrapper.vm
P粉054616867
P粉054616867 2023-12-26 13:38:11
0
1
536

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粉054616867
P粉054616867

Antworte allen(1)
P粉476046165

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

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

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

wrapper.vm.myMethod?.()
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage