Attempt at trait constructor invocation
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2023-12-28 02:09:03 +01:00
parent 55013a1110
commit 018ece30f0
3 changed files with 29 additions and 9 deletions

BIN
bun.lockb

Binary file not shown.

View File

@@ -29,6 +29,7 @@
"rollup": "^4.7.0", "rollup": "^4.7.0",
"rollup-plugin-cleanup": "^3.2.1", "rollup-plugin-cleanup": "^3.2.1",
"rollup-plugin-ts": "^3.4.5", "rollup-plugin-ts": "^3.4.5",
"tsx": "^4.7.0",
"typescript": "^5.3.3" "typescript": "^5.3.3"
} }
} }

View File

@@ -40,8 +40,12 @@ class ImplementsIdentifiable<ID> extends Identified<ID> {
abstract class Permissible { abstract class Permissible {
static readonly defaultPermissions: string[] = [] static readonly defaultPermissions: string[] = []
// permissions: string[] = [] permissions: string[] = []
permissions!: string[] // permissions!: string[]
constructor() {
console.log("Permissible constructor")
}
initializer() { initializer() {
console.log("Permissible initializer") console.log("Permissible initializer")
@@ -63,13 +67,28 @@ class User extends expresses(
} }
} }
console.log(new User(BigInt(1))) // const user1 = new User(BigInt(1))
// const user2 = new User(BigInt(2))
console.log(Permissible.constructor()) // console.log(user1)
console.log(Object.getOwnPropertyNames(User.prototype)) // console.log(user1.equals(user2))
const user1 = new User(BigInt(1))
const user2 = new User(BigInt(2))
console.log(user1.equals(user2)) class ConstructorTests1 {
console.log(user1.permissions) value: string
constructor() {
console.log("ConstructorTests1")
this.value = "ConstructorTests1"
}
}
function ConstructorTests2(this: ConstructorTests1) {
console.log("ConstructorTests2")
this.value = "ConstructorTests2"
}
const targetObj = {}
console.log(Reflect.construct(ConstructorTests1, [], ConstructorTests2))