From 29d539ec32a1b5a0d84264aab80b8453a295e1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 25 Feb 2024 05:21:35 +0100 Subject: [PATCH] Override --- src/util/extend.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/util/extend.ts b/src/util/extend.ts index 5cab210..fb28207 100644 --- a/src/util/extend.ts +++ b/src/util/extend.ts @@ -22,6 +22,21 @@ export type Extend = ( : {} ) +export type Override = ( + T extends readonly [ + infer Super, + infer Self, + ...infer Rest extends readonly object[], + ] + ? Override> & Self, + ...Rest, + ]> + : T extends readonly [infer Self] + ? Self + : {} +) + /** * Merges an inheritance tree defined by an array of types without allowing overrides. * @template T - An array of types representing the inheritance tree.