我使用的是带有 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 文件中使用类有什么建议吗?