Extendable

This commit is contained in:
Julien Valverdé
2024-02-01 02:21:10 +01:00
parent a5b8a1c184
commit a82c978c9e
3 changed files with 51 additions and 9 deletions

View File

@@ -1,4 +1,6 @@
import { Implements, TraitAbstractMembers, expresses, extendsAndExpresses, trait } from "."
import { Booleans, Call, Compose, ComposeLeft, Match, Pipe, Tuples } from "hotscript"
import { Implements, TraitAbstractMembers, TraitAbstractMembersFn, expresses, extendsAndExpresses, trait } from "."
import { CheckExtendableFn, ExtendFn, Extendable, ExtendableFn, SimplifyFn } from "./util"
const PrintsHelloOnNew = trait()(Super =>
@@ -52,7 +54,11 @@ const exp = extendsAndExpresses(
Identifiable<bigint>(),
// Identifiable<number>()
)
type Impl = Implements<typeof exp>
type ExpImpl = Implements<typeof exp>
type ExpAbstractMembers = Pipe<typeof exp.traits, [
Tuples.Map<TraitAbstractMembersFn>,
]>
type ExpExtendable = Extendable<ExpAbstractMembers>
class User extends exp.extends() implements Implements<typeof exp> {
id: bigint = -1n