【发布时间】:2021-12-25 09:34:00
【问题描述】:
我有一个发出 note-not-saved 的组件 (NoteComponent)。此消息通过
<template>
(...)
<NoteComponent @note-not-saved='() => noteNotSaved=true' />
(...)
</template>
noteNotSaved 本身在我的<script> 部分中定义:
<script setup lang='ts'>
(...)
const noteNotSaved = ref(false)
(...)
</script>
应用程序运行良好,但是我的 IDE(JetBrains GoLand 或 WebStorm)发出了微弱的警告
Variable noteNotSaved implicitly declared
这到底是什么意思?怎么能比这更明确地声明noteNotSaved?
【问题讨论】:
-
问题可能是 IDE 对
script setup的支持很差。但无论如何,() => noteNotSaved=true很糟糕。这不是 refs 的修改方式,也没有必要在模板中编写回调。 -
我在WebStorm中使用过脚本设置,目前还没有很好的支持。
-
@LucasDavidFerrero:我刚刚尝试了 2021.3 EAP 版本,但尚未修复。我记得 JetBrains 论坛上关于
<script setup支持的讨论,我认为现在应该没问题(至少现在 IntelliVue 已针对 2021.3 EAP 进行了更新,因此可以使用) -
@EstusFlask:您介意多评论一下为什么这是一种不好的方法吗?以及应该如何更好地处理?
-
在不必要的情况下在模板中编写 JS 会使其更难维护并导致性能开销。应该像答案显示的那样,必须有 setNoteAsNotSaved 函数
标签: vue.js webstorm vuejs3 quasar-framework goland