Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: https://git.jvalver.de/Thilawyn/traitify-ts/pulls/3
This commit was merged in pull request #3.
This commit is contained in:
13
src/tests.ts
13
src/tests.ts
@@ -1,17 +1,21 @@
|
||||
import { Simplify } from "type-fest"
|
||||
import { Implements, Trait, abstract, expression, trait } from "."
|
||||
import { Pipe } from "hotscript"
|
||||
import { Trait, trait } from "./Trait"
|
||||
import { Implements } from "./TraitExpression"
|
||||
import { expression } from "./TraitExpressionBuilder"
|
||||
import { abstract } from "./abstract"
|
||||
|
||||
|
||||
const PrintsHelloOnNew = trait(
|
||||
abstract(),
|
||||
Super => class PrintsHelloOnNew extends Super {
|
||||
static readonly isPrintsHelloOnNew = true
|
||||
|
||||
constructor(...args: any[]) {
|
||||
super(...args)
|
||||
console.log("Hello!")
|
||||
}
|
||||
},
|
||||
)
|
||||
type PrintsHelloOnNewClass = Trait.Class<typeof PrintsHelloOnNew>
|
||||
|
||||
const Identifiable = <ID>() => trait(
|
||||
abstract<{ readonly id: ID }>(),
|
||||
@@ -34,6 +38,7 @@ const StatefulSubscription = trait(
|
||||
|
||||
Super => class StatefulSubscription extends Super {},
|
||||
)
|
||||
type StatefulSubscriptionClass = Trait.Class<typeof StatefulSubscription>
|
||||
|
||||
const ActiveStatefulSubscription = expression
|
||||
.expresses(StatefulSubscription)
|
||||
@@ -51,7 +56,7 @@ const ActiveStatefulSubscription = expression
|
||||
Super => class ActiveStatefulSubscription extends Super {},
|
||||
)
|
||||
|
||||
type T = Trait.Instance<typeof ActiveStatefulSubscription>
|
||||
type ActiveStatefulSubscriptionClass = Trait.Class<typeof ActiveStatefulSubscription>
|
||||
|
||||
|
||||
class TestSuperclass {
|
||||
|
||||
Reference in New Issue
Block a user