vue wacheでoverloadに関するエラーが出た
Q&A
Closed
解決したいこと
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