Vue/Typescript,got模块'&*。vue“';没有导出的成员

Vue/Typescript,got模块'&*。vue“';没有导出的成员,typescript,vue.js,vuejs2,Typescript,Vue.js,Vuejs2,我想从.vue文件中导出几个带有组件的接口 Basic.vue: <template> <div class="app"> <router-view></router-view> </div> </template> <script lang="ts"> import { Vue, Component } from "vue-property-decorator"; expor

我想从
.vue
文件中导出几个带有
组件的接口

Basic.vue:

<template>
    <div class="app">
        <router-view></router-view>
    </div>
</template>

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

export interface IBasic {
    name :string;
}

/**
 * Simplest container
 */
@Component
export class Basic extends Vue {}
export default Basic;
</script>

从“Vue属性装饰器”导入{Vue,Component};
导出接口IBasic{
名称:字符串;
}
/**
*最简单的容器
*/
@组成部分
导出类基本扩展Vue{}
导出默认基本值;
但是当我从另一个
.ts
文件导入它时,我得到:


如何才能成功导入接口?

您可以尝试使用than为每个组件文件生成自定义声明文件,而不是使用默认的
vue.d.ts
声明。

您可以从导入中删除{}。这是一个默认导出,因此您可以在VS代码中使用此插件从“@/./containers/Basic”编写import IBasic,为我解决了这个问题:

这是一个积极维护的叉子。我运行了
thread add-D ts vue plugin
,并将这些编译器选项添加到我的
tsconfig.json

compilerOptions: {
  "allowSyntheticDefaultImports": true,
  "plugins": [{ "name": "ts-vue-plugin" }]
}
我的代码(故事书6文件按钮.stories.ts):


这样,类型导入最终都可以工作,我可以跳转到文件(CMD+click),而不是像以前那样跳转到
vue.d.ts
。祝你好运

为什么不将
IBasic
移动到它自己的文件中,该文件可以由任何需要的人导入?虽然可以将它们放在一个单独的文件中,但我正在寻找将它们与组件放在一起的可能性。特别是当接口在其他地方是无用的时候。有关于这个问题的消息吗?将所有导出收集到一个默认对象是目前唯一的方法吗?有一个默认导出,但也有一个名为
IBasic
的导出,这大概是所需的。
import Button, { BUTTON_TYPE } from '@/components/Button.vue';