簡體   English   中英

TypeScript + Vue 3 - ReferenceError:未定義變量

[英]TypeScript + Vue 3 - ReferenceError: variable is not defined

我在<script>的開頭聲明了一個類型為any的變量,然后我在同一個<script>中的一個方法中引用了它。 我的 IDE 根本沒有抱怨,但令人驚訝的是,我在控制台中看到了一個運行時錯誤: ReferenceError: flik is not defined

也許這與 Vue 生命周期中圍繞變量實例化的競爭條件有關? 這很令人困惑,因為我在其他地方使用類似的模式沒有遇到這個問題。 我下面的代碼有什么問題?

<script lang="ts">
import Flickity from "./widgets/Flickity.vue";

declare var flik: any

export default defineComponent({
  components: {
    Flickity
  },
  methods: {
    addElement() {
      flik = this.$refs.flickity    //ERROR HERE: flik is undefined
      flik.append(this.makeFlickityCell())
    },
    makeCell() {
      const cell = document.createElement('div');
      cell.className = 'carousel-cell'
      cell.textContent = "Hi"
      return cell
    }
  },
  mounted() {
    this.addElement()
  }
});
</script>

我認為這里不需要declare ,它實際上告訴 TypeScript 編譯器flik已經在其他地方聲明(例如,它是全局的)。

只需將類型斷言用作any

(this.$refs.flickity as any).append(this.makeFlickityCell())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM