import type { App, Directive } from 'vue'; import type { SFCWithInstall } from '../types'; // 注册组件 export const withInstall = (main: T) => { (main as SFCWithInstall).install = (app): void => { const comp: Record = main as Record; app.component(comp.name, comp); }; return main as SFCWithInstall; }; // 注册指令 export const withInstallDirectives = (main: T, name: string) => { return { install: (app: App): void => { app.directive(name, main); }, directive: main, }; };