У меня есть следующий компонент Vue.Он предназначен для создания общей боковой панели, которая используется два или три раза с разными данными
<template>
<div>
<h5>{{ title }}</h5>
<div v-for="prop of data" :key="prop.id">
<router-link :to="path(prop.id)">{{ prop.name }}
<i class="material-icons right">edit</i></router-link>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: {
data: Array,
title: String,
pathbase: String
},
methods: {
path(id): string {
return `${this.$props.pathbase}/${id}`;
}
}
});
</script>
У меня такой вопрос.Почему я должен использовать this.$props.pathbase
для доступа к значению pathbase
здесь?Почему this.pathbase
считается Typescript недействительным?Это не первый раз, когда я пытался получить доступ к опоре без $props
, но это первый раз, когда Typescript жаловался на это.Кроме того, если я использую this.pathbase
, Typescript жалуется в моем редакторе (VSCode), но Vue компилирует без ошибок проект, и компонент отображает и ведет себя соответствующим образом.
Сообщение на VSCode говорит: Property 'pathbase' does not exist on type 'Vue'.
Я хочу знать, почему это вызывает эту ошибку, потому что я хотел бы лучше понять машинопись.Зачем this.pathbase
вызывать жалобы на машинопись, даже если это не ошибка компиляции?Почему я должен использовать $props
?