Tengo un componente ( NoteComponent ) que emite note-not-saved . Este mensaje se maneja a través de
<template> (...) <NoteComponent @note-not-saved='() => noteNotSaved=true' /> (...) </template> noteNotSaved en sí está definido en mi sección <script> :
<script setup lang='ts'> (...) const noteNotSaved = ref(false) (...) </script>La aplicación funciona bien, sin embargo, tengo una advertencia débil de mi IDE (JetBrains GoLand o WebStorm)
Variable noteNotSaved implicitly declared ¿Qué quiere decir eso exactamente? ¿Cómo se puede noteNotSaved más explícitamente que eso?
El IDE puede considerar noteNotSaved=true como una declaración implícita de una variable global.
Intenta cambiar su valor de la siguiente manera:
const { createApp, ref } = Vue; const NoteComponent = { template: `<button @click="$emit('note-not-saved')">Click</button>` }; const App = { components: { NoteComponent }, setup() { const noteNotSaved = ref(false); const setNoteAsNotSaved = () => { noteNotSaved.value = true; } return { noteNotSaved, setNoteAsNotSaved }; } }; createApp(App).mount("#myApp"); <script src="//unpkg.com/vue@next"></script> <div id="myApp"> <div><note-component @note-not-saved="setNoteAsNotSaved" /></div> <div><p>Note Not Saved: {{noteNotSaved}}</p></div> </div>