由于项目功能越来越多,单个 vue 文件代码量过于臃肿,因此产生了将代码分离的想法并在昨天手写了个 npm script
用来生成组件套件。
生成的代码文件如果不使用 TS
是没有任何报错信息的,反之则会在模板文件出现类型推导错误的情况,生成的代码如下:
// index.ts
import { defineComponent, ref } from 'vue';
import './index.scss';
export default defineComponent({
setup (props, { emit }) {
const msg = ref("命令生成文件");
return {
msg
}
}
});
<!-- index.vue -->
<template>
<p>权限视角</p>
</template>
<script lang="ts">
import businessComponent from './index';
// @ts-ignore
export default defineComponent({...businessComponent});
</script>
p {
font: 14px/500;
}
在生成的 .vue
文件中,如果不加入 // @ts-ignore
会出现错误提示 没有与此调用匹配的重载
;而加上后,不管在 TS
文件如何定义类型,整个文件的类型都自动变成了 never
。
有没有大神知道这是怎么回事?
把ts里的
defineComponent
去掉,或者把vue里的改成export {default} from './index'