在打字稿文件中从 vue 文件导入类

时间:2021-02-21 19:49:46

标签: typescript vue.js vuejs2

我使用的是带有 TypeScript 层 (vue-property-decorator) 的 Vue 2。

我在 BaseForm 文件中有一个名为 .vue 的类:

<template>
  <div class="base-form">
    <form>
      <slot />
    </form>
  </div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

@Component({})
export default class BaseForm extends Vue {
  comment = '';
}
</script>

我想像这样访问 comment 文件中 BaseForm 类的 .ts 变量:

import BaseForm from '@/components/BaseForm.vue';
setComment(form: BaseForm, comment: string) {
  form.comment = comment;
}

但是在 .ts 文件中,BaseForm 没有输入为 class,而是输入为 (Vue) interface,我无法访问该变量。

我的 shims-vue.d.ts 看起来像(我从 here 那里得到的):

declare module '*.vue' {
  import Vue from 'vue';
  export default Vue;
}

我试图添加这样的东西(但没有用):

declare module 'BaseForm.vue' {
  import BaseForm from '@/components/base/BaseForm.vue';
  export default BaseForm;
}

对于如何在非 vue 文件中使用类有什么建议吗?

0 个答案:

没有答案