我最近将typescript添加到我的vue项目中,每次访问props 或数据中的值时,我都会收到这个错误

37:46 Property 'activity' does not exist on type '{ props: { activity: { type: ObjectConstructor; required: boolean; }; }; methods: { formatDistance: (distance: number, setting_unit: string) => string; }; mounted: () => void; }'.
    35 |         },
    36 |         mounted: function () {
  > 37 |             var activitymap = L.map('map' + this.activity['activity']['id']).setView([51.505, -0.09], 13)
       |                                              ^

这是我的props

    props: {
        activity: {
            type: Object,
            required: true
        }
    },

这就是它正在使用的方法

    mounted: function () {
        var activitymap = L.map('map' + this.activity['activity']['id']).setView([51.505, -0.09], 13)
        L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
            attribution: '<a href="https://www.openstreetmap.org/">OpenStreetMap</a>',
            maxZoom: 18,
            id: 'mapbox.streets',
            accessToken: process.env.VUE_APP_MAPBOX_KEY
        }).addTo(activitymap)

        var gpxGroup = new L.FeatureGroup();

        activitymap.addLayer(gpxGroup);

        omnivore.gpx(this.activity['activity']['activity_log_url']).addTo(gpxGroup).on('ready',
            function () {
                activitymap.fitBounds(gpxGroup.getBounds());
            }
        )
    }

是什么导致了这个问题?

推荐答案

如果没有vue类组件,很难将typescript与VUEJ一起使用.你用Vue.extend()来定义你的组件吗?

import Vue from 'vue';
export default Vue.extend({
    props: {
        activity: {
            type: Object,
            required: true
        }
    },
});

Vue.js相关问答推荐

Vue 3 需要 main.js 中的文件

如何使用composition api v-model Select 框获取其他JSON 值?

保持页面重新加载之间的状态

TailwindCSS 为什么前者比后者重要?

使用带有 v-date-picker 的 new Date() 不起作用

VueJS 插件的如何react式绑定?

使用 vuex 更新数据

判断 vue-router.beforeEach 不限制对路由的访问

Django Rest 框架、CSRF 和 Vue.js

单击链接会更改 url,但不会更改页面上的内容/数据

如何在 vue 3 中获取路由的参数?

Laravel 中的 VueJS 组件实现中的鼠标悬停

Vuex - 何时从 http 服务器加载/初始化存储数据

v-if inside v-for - 在两列中显示项目列表

如何从 Vuex 操作访问 Vuex 状态属性?

vuex 是 state.array.push react式的吗?

带有 Firebase 云消息传递的 Vue pwa 无法正常工作

VueJS 2 + ASP.NET MVC 5

居中 v-toolbar-title

vuejs 复制数据对象和删除属性也会从原始对象中删除属性