@realsee/five
Version:
Realsee Renderer SDK
26 lines (25 loc) • 889 B
TypeScript
import type { Five } from "../application/five";
/**
* Five 插件
* @template Parameters - 插件参数, 没有参数则为 void
* @template Returns - 如果有参数则插件暴露的 api,没有参数则不传
*/
type FivePlugin<Parameters = void, Returns = void> = Parameters extends void ? ((five: Five) => Returns) : ((five: Five, parameters: Parameters) => Returns);
/**
* 获取插件暴露的 api
* @template T - Five 插件
*/
type FivePluginInstance<T extends FivePlugin<any, any>> = ReturnType<T>;
/**
* 获取插件在Five中的初始化结构
* @template T - Five 插件
*/
type FivePluginInit<T extends FivePlugin<any, any>> = Parameters<T>[1] extends undefined ? [
Plugin: T,
instanceName: null | string
] : [
Plugin: T,
instanceName: null | string,
parameters: Parameters<T>[1]
];
export { FivePlugin, FivePluginInstance, FivePluginInit, };