typescript / expert
Snippet
Monomorphe Schema-Erzwingung durch strikte Feldreihenfolge im Konstruktor
Optimiert das Inline-Caching der V8-Engine durch Erzwingung identischer Eigenschaftsreihenfolgen und Prototyp-Links. Dies garantiert monomorphe versteckte Klassen und verhindert polymorphe Leistungsverluste.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
type EnforceMonomorphic<T> = {[K in keyof T]: T[K];};function createMonomorphicEntity<T extends object>(shape: EnforceMonomorphic<T>): Readonly<T> {const instance = Object.create(null);for (const key of Reflect.ownKeys(shape) as (keyof T)[]) {instance[key] = shape[key];}return Object.freeze(instance);}
Erklärung
1
type EnforceMonomorphic<T> =
Mappt Schlüssel zur Fixierung der strukturellen Layout-Definitionen zur Kompilierzeit.
2
const instance = Object.create(null);
Erstellt ein sauberes Objekt ohne Prototypen-Overhead.
3
for (const key of Reflect.ownKeys(shape))
Iteriert Schlüssel in deterministischer Reihenfolge für identische Hidden-Class-Übergänge im JIT-Compiler.