在匯出中參考 data() 時出現錯誤。它說,該屬性不存在。我究竟做錯了什么?VueJS 版本 2。
這是資料:
<script lang="ts">
export default {
data() : {
item: Array<Number>
key: Number
keyy: Number
} {
return {
item: [],
key: 0,
keyy: 0,
};
},
在這里,我想在相同的匯出默認值中參考它:
methods: {
async para(value: any){
this.key=value.target.value //Here i get error
},
async paraa(value: any){
this.keyy = value.target.value //Here i get error
},
async openChannels() {
const randomArray = [0,2]
this.item.push(randomArray[0]) //Here i get error
}
}
}
</script>
我得到的錯誤是:
型別 '{ para(value: any): Promise; 上不存在屬性 'key' paraa(value: any): 承諾;openChannels():承諾;}'
型別 '{ para(value: any): Promise; 上不存在屬性 'keyy' paraa(value: any): 承諾;openChannels():承諾;}'
型別 '{ para(value: any): Promise; 上不存在屬性 'item' paraa(value: any): 承諾;openChannels():承諾;}'
謝謝您的幫助。
Ps:我的 vetur 擴展沒有顯示任何錯誤。我只有在編譯代碼時才得到這些。
uj5u.com熱心網友回復:
如果你想要 TypeScript 支持,你需要使用defineComponent
import { defineComponent } from 'vue'
export default defineComponent({
...
})
我會推薦Volar而不是 Vetur。
我還建議定義更接近實際值的型別:
data() {
return {
item: [] as Array<Number>,
key: 0 as Number,
keyy: 0 as Number,
};
},
舊答案
randomArray 未定義,您可能缺少const或let
const randomArray = [0,2] // <--
你}最后錯過了一個
}
} // <--
</script>
進行這些編輯后,您的代碼應該可以作業:現場演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463345.html
標籤:javascript 打字稿 Vue.js
