Vue / Typescript,获取模块'*.vue'没有导出成员

2guxujil  于 2022-12-14  发布在  Vue.js
关注(0)|答案(5)|浏览(1421)

我想从.vue文件中导出几个接口和Component

基本版本:

<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>

但是当我从另一个.ts文件导入它时,我得到了:

如何才能成功导入接口?

wgx48brx

wgx48brx1#

我遇到了同样的问题,意识到尽管IDE上没有错误,但错误仍然被抛出,所以我只是重新启动服务器,它就完美地工作了......每次我用TS创建导入或导出任何东西时,我都必须这样做。

6qftjkof

6qftjkof2#

你可以尝试使用ktsn/vuetype比将为你的每个组件文件生成自定义声明文件,而不是使用默认的shims-vue.d.ts声明。

piah890a

piah890a3#

尝试将interface移动到另一个TS文件中
component.vue

<template>
    <div class="app">
        <router-view></router-view>
    </div>
</template>
<script lang="ts">
import { Vue, Component } from "vue-property-decorator";
   
/**
 * Simplest container
 */
@Component
export class Basic extends Vue {}
export default Basic;
</script>

interfaces.ts

export interface IBasic {
    name :string;
}
g6baxovj

g6baxovj4#

您可以从导入中删除{ }。这是默认的导出,因此您可以编写import IBasic from“@/../containers/Basic”

6ie5vjzr

6ie5vjzr5#

在VS代码中使用这个插件为我解决了这个问题:https://github.com/HerringtonDarkholme/vue-ts-plugin
我运行了yarn add -D ts-vue-plugin,并在tsconfig.json中添加了以下编译器选项:

compilerOptions: {
  "allowSyntheticDefaultImports": true,
  "plugins": [{ "name": "ts-vue-plugin" }]
}

我的代码(故事书6文件button.stories.ts):

import Button, { BUTTON_TYPE } from '@/components/Button.vue';

有了这个,类型导入终于工作了,我可以跳到文件(CMD+点击),而不是像以前那样跳到shims-vue.d.ts。祝你好运!

相关问题