当前位置: 首页 > 知识库问答 >
问题:

如何使用带有组合API的Vue 2键入提示vue组件方法

邢晗日
2023-03-14

我有两个组件

简化示例(我忽略了应用程序初始化):

<template>
   <div ref="modalEl">I'm the modal<slot></slot></div>
</template>
<script lang="ts">
import {defineComponent, onMounted, ref} from '@vue/composition-api';
import Modal from 'bootstrap/js/dist/modal';

export default defineComponent({
    setup(props) {
       const modalEl = ref<Element | string>('');
       let modal: Modal;

       onMounted(() => {
          modal = new Modal(modalEl.value);
       });

       const show = () => modal.show();

       return {
          modalEl,
          show,
       } 
    }
});
</script>
<template>
   <div>
       <Modal ref="modalSave">I'm modal content</Modal>
       <button @click="showModal">show modal</button>
   </div>
</template>
<script lang="ts">
import {ref,defineComponent} from '@vue/composition-api';
import Modal from 'Modal.vue';
export default defineComponent({
  components: {
      Modal
  },
  setup(props) {
      const modalSave = ref<InstanceType<typeof Modal> | null>(null);
      const showModal = () => modalSave.value?.show();

      return {
          modalSave,
          showModal
      }
  }
});

</script>

如前所述,它可以工作,我甚至可以在PhpStorm中完成代码。但当我编译时,我得到了一个错误:

应用程序中出现错误。vue。ts(115,24)TS2339:属性'show'在类型{readonly$el:Element;readonly$options:{data?:DefaultData |未定义;props?:string[]|{[x:string]:Prop |{type?:Prop | Prop[]未定义;必需?:boolean |未定义;默认?:any;any;validator:((值:any)=

有人知道如何在这里不添加ts ignore而让TypeScript快乐吗?


暂时还没有答案

 类似资料:
  • 如上图,我编写了一个 .ts 文件,当我在别的组件引入的时候,可以正确在组件的挂载后执行,这种思想设计是如何实现的呢? (感觉有点类似于函数编程里的 pipe 和 compose,但是由于是一个初学者,还并不能理解 vue 这样的思想) 我期望得到的解释:该如何写一个 demo 级别的小例子去模仿实现这样的结果呢?(并不是指写出一个生命周期函数的完整过程,而是希望可以通过简单的 js 去模仿实现它

  • 有没有办法告诉WebStom在AngularJS(v1)组件超文本标记语言模板文件中哪个类型? 如果它是一个JavaScript文件,我可以使用JSDoc,WebStorm会使用该信息,并会正确检测未使用的方法等。 WebStorm的文档讲述了Angular插件,但该插件似乎无法与较新的AngularJS组件一起工作,只能与较旧的< code>ng-controller样式一起工作。

  • 为什么要在methods导入才能使用,我记得是import导入模板就能使用了?

  • 我正在尝试使用composition API创建Vue 3组件库: https://github.com/hyperbotauthor/vue3complib 在其中一个组件中,我想导入另一个组合API组件(https://github.com/hyperbotauthor/vue3complib/blob/main/src/components/ChessboardExt.vue): 这几乎是可

  • 本文向大家介绍Vue数字输入框组件的使用方法,包括了Vue数字输入框组件的使用方法的使用技巧和注意事项,需要的朋友参考一下 最近在通过《Vue.js实战》系统学习Vue,虽然在项目中已多次使用Vue进行开发,但是对于一些非常基础性的知识点还不是很了解,因此这次通过结合数字输入框组件实战来谈谈简单的组件开发。 源代码:数字输入框组件 项目整体结构 ├── src  项目代码 │ ├── common

  • 问题内容: 我的印象是,除了选择列表中已经存在的任何值之外,您还可以键入一个组合框。但是,我似乎找不到有关如何执行此操作的信息。我需要添加一个属性以允许输入文本吗? 问题答案: 在此之前(请参见下面的注释),您将提供其他元素供人们输入自己的选项。 该机制 可在所有浏览器中使用,并且不需要JavaScript 。 如果选择了“其他”选项,您可以使用一点JavaScript来聪明地仅显示。 该元素旨在