From f028fb5a32ef3b5a38ec31d51087a2d64489ef2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 11 May 2024 01:45:17 +0200 Subject: [PATCH] Fix --- src/effect/EffectSchemaTraitExpressionBuilder.ts | 9 --------- src/effect/tests.ts | 15 +++++++++++---- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/effect/EffectSchemaTraitExpressionBuilder.ts b/src/effect/EffectSchemaTraitExpressionBuilder.ts index f4b121a..8e8139f 100644 --- a/src/effect/EffectSchemaTraitExpressionBuilder.ts +++ b/src/effect/EffectSchemaTraitExpressionBuilder.ts @@ -55,15 +55,6 @@ export class EffectSchemaInitialTraitExpressionBuilder { annotations?: S.Annotations.Schema, ) { return new EffectSchemaTraitExpressionBuilder( - // superclass.extend(identifier)(fields, annotations) as S.Class< - // unknown, - // Fields & NewFields, - // I & S.Struct.Encoded, - // R | S.Struct.Context, - // C & S.Struct.Constructor, - // InstanceType, - // Proto - // >, superclass.extend(identifier)(fields, annotations), {} as Omit, keyof S.Class>, [], diff --git a/src/effect/tests.ts b/src/effect/tests.ts index 70a786c..315bf07 100644 --- a/src/effect/tests.ts +++ b/src/effect/tests.ts @@ -4,6 +4,10 @@ import { EffectSchemaTraitExpression } from "./EffectSchemaTraitExpression" import { effectSchemaExpression } from "./EffectSchemaTraitExpressionBuilder" +type RequiredKeys = { + [K in keyof T]-?: {} extends Pick ? never : K + }[keyof T] + type Extr = T extends EffectSchemaTraitExpression< infer Fields, @@ -19,6 +23,10 @@ type Extr = ? Static : never +type InspectSchemaClass = T extends S.Class + ? C + : never + const userExp = effectSchemaExpression .class("User", { @@ -35,9 +43,11 @@ class User extends userExp.extends() implements Implements static aStaticMethodThatShouldBeInherited() {} } +type T1 = InspectSchemaClass +type T2 = InstanceType + const user = new User({ id: 0n, role: "User" }) // user.id = 0n -type UserEncoded = S.Schema.Encoded const adminExp = effectSchemaExpression @@ -47,9 +57,6 @@ const adminExp = effectSchemaExpression // .immutable() .build() -adminExp.superclass -type T = Extr - @adminExp.staticImplements class Admin extends adminExp.extends() implements Implements { }