fix: declared properties

This commit is contained in:
Marcos Susaña 2025-02-24 03:07:18 -04:00 committed by GitHub
parent 272ddac08b
commit 7e9aa6769e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -49,10 +49,15 @@ export function Mixin<T, C extends TypeClass[]>(...args: C): C[number] & T {
super(...constructorArgs); super(...constructorArgs);
for (const mixin of args.slice(1)) { for (const mixin of args.slice(1)) {
const descriptors = getDescriptors(mixin).reverse(); // @ts-expect-error
Object.assign(this, new mixin(...constructorArgs));
const descriptors = getDescriptors(mixin).reverse().concat(Object.getOwnPropertyDescriptors(mixin));
for (const desc of descriptors) { for (const desc of descriptors) {
for (const key in desc) { for (const key in desc) {
if (key === 'constructor') continue; if (key === 'constructor') {
Object.assign(this, new desc[key].value(...constructorArgs));
continue;
}
if (key in MixedClass.prototype) continue; if (key in MixedClass.prototype) continue;
const descriptor = desc[key]; const descriptor = desc[key];