programingBeginner
@programingBeginner

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

vue wacheでoverloadに関するエラーが出た

解決したいこと

vueでサイトを作っています。
watchを使ってみようと思ったのですが、overloadに関するエラーが出てしまいましt。
解決方法を教えていただきたいです。

発生している問題・エラー

No overload matches this call.
The last overload gave the following error.
Argument of type 'undefined' is not assignable to parameter of type 'object'.

該当するソースコード

<template>
  <img ref="smokeRef" src="@/assets/smoke.png" alt="" class="steam1" />
</template>

<script lang="ts">
import { defineComponent, ref, watch } from "vue";
export default defineComponent({
  setup() {

    const smokeRef = ref<HTMLImageElement>();
    const smokePosition = ref(smokeRef.value?.getBoundingClientRect());
    const smokeLeft = smokePosition.value?.left

    watch(smokeLeft, () => {
        console.log("a")
    });

    return {
      smokeRef,
    };
  },
})

自分で試したこと

1,2つ目のエラーの意味が全く分からず、とりあえず3つ目のエラーArgument of type 'number' is not assignable to parameter of type 'object'. について考えてみました。
smokeLeftは、number型かundefined型をとるが(number型をとる理由は分かるが、undefined型をとる理由は分からない。)、watchの引数にはobject型しか入ってはいけないのかなと考えました。しかし、そこからどうすればいいかがわからない状態です。
また、smokeLeftは、number型かundefined型をとるが、Argument of type 'undefined' is not assignable to parameter of type 'object'.というエラーがあって、Argument of type 'number' is not assignable to parameter of type 'object'.というエラーがないのもおかしいなと考えました。

0

1Answer

Your answer might help someone💌