From e40afbe28c2e0cf6a171125c1f9bb3b422c71f4d Mon Sep 17 00:00:00 2001 From: Wade Baglin Date: Fri, 5 Aug 2022 17:42:54 +1000 Subject: [PATCH] feat: typescript helper to make proxy with method intellisense better --- src/data-builder.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/data-builder.ts b/src/data-builder.ts index 372869e..048f133 100644 --- a/src/data-builder.ts +++ b/src/data-builder.ts @@ -41,9 +41,13 @@ export abstract class DataBuilder { } } -type WithMethods = { - [K in keyof T as K extends string ? `with${Capitalize}` : never]-?: (d: T[K]) => WithMethods & TBuilder -} & TBuilder +type WithMethods = CoerceIntellisense< + { + [K in keyof T as K extends string ? `with${Capitalize}` : never]-?: (d: T[K]) => WithMethods & TBuilder + } & TBuilder +> + +export type CoerceIntellisense = T extends infer O ? { [K in keyof O]: O[K] } : never const proxyHandler = { // eslint-disable-next-line @typescript-eslint/no-explicit-any