diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts index d715be00b8..4be1d76664 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/controller/extensions-element-initializer.controller.ts @@ -11,8 +11,8 @@ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; /** */ export class UmbExtensionsElementInitializer< - ManifestTypes extends ManifestBase, - ManifestTypeName extends string = ManifestTypes['type'], + ManifestTypes extends ManifestBase = ManifestBase, + ManifestTypeName extends string = string, ManifestType extends ManifestBase = SpecificManifestTypeOrManifestBase, ControllerType extends UmbExtensionElementInitializer = UmbExtensionElementInitializer, MyPermittedControllerType extends ControllerType = PermittedControllerType, diff --git a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts index 9d7ebef3e0..255621e28f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/extension-api/types/map.types.ts @@ -1,6 +1,6 @@ import type { ManifestBase } from './manifest-base.interface.js'; -export type ManifestTypeMap = { +type ManifestTypeMapGenerator = { [Manifest in ManifestTypes as Manifest['type']]: Manifest; } & { [key: string]: ManifestBase; @@ -9,4 +9,5 @@ export type ManifestTypeMap = { export type SpecificManifestTypeOrManifestBase< ManifestTypes extends ManifestBase, T extends string, -> = T extends keyof ManifestTypeMap ? ManifestTypeMap[T] : ManifestBase; + ManifestTypeMapType = ManifestTypeMapGenerator, +> = T extends keyof ManifestTypeMapType ? ManifestTypeMapType[T] : ManifestBase;