import { mixTraits } from "./trait" abstract class Identified { abstract id: ID equals(el: Identified) { return this.id === el.id } } abstract class ProvideIdentified extends Identified { id!: ID } abstract class Permissible { protected permissions: string[] = [] } class User extends mixTraits( Identified, // Identified, Permissible, ) { id: bigint = BigInt(-1) } const user = new User()