From a848e00fdd68f77df308c83a52492c430f323f41 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Wed, 22 Jul 2020 22:08:20 +0300 Subject: [PATCH] Fix type inference for the public interface of plugins created with the zeppelinPlugin() helper --- backend/src/plugins/ZeppelinPluginBlueprint.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/backend/src/plugins/ZeppelinPluginBlueprint.ts b/backend/src/plugins/ZeppelinPluginBlueprint.ts index 529ec796..330c9649 100644 --- a/backend/src/plugins/ZeppelinPluginBlueprint.ts +++ b/backend/src/plugins/ZeppelinPluginBlueprint.ts @@ -8,11 +8,18 @@ export interface ZeppelinPluginBlueprint): ZeppelinPluginBlueprint; -export function zeppelinPlugin(): ( +export function zeppelinPlugin>( name: string, - blueprint: Omit, "name">, -) => ZeppelinPluginBlueprint; + blueprint: TPartialBlueprint, +): TPartialBlueprint & { name: string }; + +export function zeppelinPlugin(): < + TPartialBlueprint extends Omit, "name"> +>( + name: string, + blueprint: TPartialBlueprint, +) => TPartialBlueprint & { name: string }; + export function zeppelinPlugin(...args) { if (args.length) { const blueprint: ZeppelinPluginBlueprint = plugin(...(args as Parameters));