Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
La tienda Pinia en el componente Typescript Vue da el error "La propiedad 'testStore' no existe en el tipo 'CreateComponentPublicInstance'...."

Tengo un bloque <script setup> en el que importo mi testStore pero cada vez que quiero usar this.testStore.name en algún lugar de mi archivo vue vetur me da este error:

 Property 'testStore' does not exist on type 'CreateComponentPublicInstance<{ [x: string & `on${string}`]: ((...args: any[]) => any) | undefined; } | { [x: string & `on${string}`]: undefined; }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 10 more ..., {}>'. Property 'testStore' does not exist on type '{ $: ComponentInternalInstance; $data: {}; $props: { [x: string & `on${string}`]: ((...args: any[]) => any) | undefined; } | { [x: string & `on${string}`]: undefined; }; ... 10 more ...; $watch(source: string | Function, cb: Function, options?: WatchOptions<...> | undefined): WatchStopHandle; } & { ...; } & ShallowU...'.Vetur(2339)

Como soy un mecanografiado n00b, realmente no sé cómo solucionar esto y los documentos de Pinia realmente no parecen ayudarme en este asunto (solo puedo encontrar cómo puedo hacer una cuña para propiedades personalizadas pero nada sobre tener que definir mis tiendas o algo así).

este es mi archivo de tienda pinia (testStore.ts)

 import { defineStore } from 'pinia'; const state = () => ({ name: 'This is my store' }); const actions = {}; const getters = { }; export const useTestStore = defineStore('testStore', { state, getters, actions, });

Este es mi archivo .vue

 <script setup lang="ts"> import { defineComponent } from 'vue' import { useTestStore } from '@/stores/testStore'; const testStore = useTestStore(); </script> <template> {{ testStore.name }} </template> <script lang="ts"> export default defineComponent({ name: 'testStore', mounted () { console.log(this.testStore.name) } }); </script>
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Creo que tu código debería ser

 <script setup lang="ts"> import { defineComponent } from 'vue' import { useTestStore } from '@/stores/testStore'; const testStore = useTestStore(); console.log(testStore); // testStore should displayed </script> <template> {{ testStore.name }} </template>

Aviso:

 <script setup lang="ts"></script>

y

 <script lang="ts"> export default defineComponent({}); </script>

Ambos se usan para definir componentes, use uno de ellos, no use ambos.

Algunos documentos de Vue que podría necesitar:

https://vuejs.org/guide/typescript/composition-api.html

https://vuejs.org/guide/typescript/options-api.html

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!