diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index 423c81d7441..8ba9429f447 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -149,17 +149,19 @@ export interface AppContext { filters?: Record } -type PluginInstallFunction = Options extends unknown[] +type PluginInstallFunction = Options extends unknown[] ? (app: App, ...options: Options) => any : (app: App, options: Options) => any +export type ObjectPlugin = { + install: PluginInstallFunction +} +export type FunctionPlugin = PluginInstallFunction & + Partial> + export type Plugin = - | (PluginInstallFunction & { - install?: PluginInstallFunction - }) - | { - install: PluginInstallFunction - } + | FunctionPlugin + | ObjectPlugin export function createAppContext(): AppContext { return { diff --git a/packages/runtime-core/src/index.ts b/packages/runtime-core/src/index.ts index ab86bfce7dc..06300cbf68f 100644 --- a/packages/runtime-core/src/index.ts +++ b/packages/runtime-core/src/index.ts @@ -212,6 +212,8 @@ export type { AppConfig, AppContext, Plugin, + ObjectPlugin, + FunctionPlugin, CreateAppFunction, OptionMergeFunction } from './apiCreateApp'