3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Vue test utilsのインスタンスプロパティ(Wrapper.vm)の型定義を拡張する

Last updated at Posted at 2022-10-30

はじめに

Vueでテストを書いている時、script setupで書いた変数にデータが格納されているか確認したい場合、wrapper.vm.変数名と書くことでアクセスできるが、型定義がない。その型定義を拡張する方法があったので備忘として記載。

方法

@vue/runteime-coreComponentCustomPropertiesというインターフェースを拡張する

import { shallowMount, VueWrapper } from '@vue/test-utils'
import Index from './index.vue'

declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    hoge: string
  }
}
const wrapper: VueWrapper = shallowMount(Index)
// エラーにならない
wrapper.vm.hoge

参考にした情報

VueWrapperの型から型引数keyof ComponentCustomPropertiesをたどりコメントを見たところ実装例の記載があった
image.png

余談

Vue3正式リリースされて随分と時間がたったけど、Vue test utilsに限らずVue3周りのツールはまだ未完成の部分があったり、ドキュメントが足りてなかったりしてつらい・・・
またVuetifyやNuxtもまだ正式リリースになっていない中サポート期限を迎えるVue2からVue3に乗り換えられるのだろうか・・・?

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?